powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq, Contains, преобразование строки в целочисленный массив
4 сообщений из 4, страница 1 из 1
Linq, Contains, преобразование строки в целочисленный массив
    #38046744
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как проще (правильнее) построить запрос где в условии where типа where id in(...), причем перечень (...) строится динамически

получилось так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
               //исходные данные это строка идентификаторов групп через запятую
                string __mail_group = "80,3,200,111"; 

                //определим разделитель строки
                string[] stringSeparators = new string[] { "," };
                //преобразуем строку из чисел через запяту в строковый массив
                string[] __mail_group_array_str = __mail_group.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
                //определим целочисленный массив размером равным строковому массиву
                var  __mail_group_array = new int [__mail_group_array_str.Count()];
                //заполним целочисленный массив
                for (int i = 0; i < __mail_group_array_str.Count(); i++)
                {
                    __mail_group_array[i] = Convert.ToInt32(__mail_group_array_str[i]);
                }
                //получим список групп доступных для выбора с карточке
                var OraMailGroup =
                    from t in _dataContext.MAIL_GROUP
                    orderby t.NAME
                    where __mail_group_array.Contains(t.MAIL_GROUP_ID) //t.MAIL_GROUP_ID == 80
                    select new RecordRef() { Id = t.MAIL_GROUP_ID, Name = t.NAME };



может можно как то проще(правильнее) ?

вот наверняка, или преобразовать строку чисел в целочисленный массив можно проще,
или средствами linq проверять на вхождения значений t.MAIL_GROUP_ID в строку можно, опять же, проще ?


--
понимать что ты чего-то не знаешь - мудро,
понимать что ты даже не знаешь, что чего-то не знаешь - печально,
но это факт, который таки очень полезно понимать :-)
...
Рейтинг: 0 / 0
Linq, Contains, преобразование строки в целочисленный массив
    #38046856
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам себе, может кому-то еще понадобится:

Преобразовать строку числе в можно в список:

Код: c#
1.
2.
3.
   List<int> __mail_group_list = new List<int>();
   string[] __sar = __mail_group.Split(',');
   foreach (string s in __sar) __mail_group_list.Add(Convert.ToInt32(s));



и так же использовать в запросе

Код: c#
1.
2.
3.
4.
5.
               var OraMailGroup =
                    from t in _dataContext.MAIL_GROUP
                    orderby t.NAME
                    where __mail_group_list.Contains(t.MAIL_GROUP_ID) 
                    select new RecordRef() { Id = t.MAIL_GROUP_ID, Name = t.NAME };



Проще преобразования строки чисел наверное не придумать.
Интересно понять, может в linq можно сразу как то строку чисел для условия скормить ?
...
Рейтинг: 0 / 0
Linq, Contains, преобразование строки в целочисленный массив
    #38046908
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelikBolekИнтересно понять, может в linq можно сразу как то строку чисел для условия скормить ?Нет.

Тут вопрос в другом. Накой ты у себя держиш массив чисел в виде строки?
...
Рейтинг: 0 / 0
Linq, Contains, преобразование строки в целочисленный массив
    #38047954
LelikBolek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КТут вопрос в другом. Накой ты у себя держиш массив чисел в виде строки?
Вопрос был в другом, но отвечу, например, строка идентификаторов вида 80,3,111 это строка из ini, всякая настройка, хранится как строка для универсальности.
Вопрос про разбор этой строки, теперь уже средствами linq желательно, раз с преобразованием в список разобрался
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq, Contains, преобразование строки в целочисленный массив
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]