Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить массив из строк с разделителями 
:(
    Опции темы
swetik1981
Дата 11.11.2015, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.12.2007

Репутация: нет
Всего: нет



Есть таблица, в которой содержится столбец Names, в котором через запятую перечислено несколько (в каждой строке по разному) имен.
Код


Table1
id   Fam              Names
1    Новиковы         Вася,Инга,Коля,Саша,Женя
2    Майоровы         Миша,Лена
3    Андреевы         Андрей,Маша,Зина
4    Ивановы          Ильдар,Таня,Рита,Вера



Необходимо одним LINQ-запросом без использования циклов вывести все имена в один массив.

Код

Вася
Инга
Коля
Саша
Женя
Миша
Лена
Андрей
Маша
Зина
Ильдар
Таня
Рита
Вера


Не придумалось ничего умнее, чем это:

Код

Dim q = Split(Join((From dt In dTable Select dt.Field(Of String)("Names")).ToArray, ","), ",")


Может быть есть более простое решение?
PM MAIL   Вверх
chupachups
Дата 12.11.2015, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Недостаточно информации для решения задачи:
1) могут ли быть повторяющиеся имена в исходных данных?
2) результирующий набор может содержать повторяющиеся имена или только уникальные

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
chupachups
Дата 12.11.2015, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Не знаю как будет на Vbnet, на C# будет так примерно
Код

dTable.AsEnumerable()
   .Select(row => row.Field<string>("Names").Split(',').ToList())
   .Aggregate(new List<string>(), (result, next) => { result.AddRange(next); return result; })
   .ForEach(name => Console.WriteLine(name));


Хотя Ваш вариант ничем не хуже, даже проще для понимания.
Основное правило программиста: делай как можно проще - легко читать, легко сопровождать.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




[ Время генерации скрипта: 0.0950 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.