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

Поиск:

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


Шустрый
*


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

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



Имеется таблица примерно следующего содержания:
Код

1   Иван
2   Николай
3   Алексей
1   Василий
2   Михаил
2   Егор
2   Тимофей
3   Игорь
4   Иван
4   Михаил


Необходимо сгруппировать строки в таблице по значениям одного из столбцов и при этом все вариации другого столбца для каждого из значений первго столбца просто свести в строку. Иными словами  получить следующую таблицу:
Код

1   Иван, Василий
2   Николай, Михаил, Егор, Тимофей
3   Алексей, Игорь
4   Иван, Михаил


Как это сделать только посредством LINQ запроса (без использования циклов)?
PM MAIL   Вверх
Miller_time
Дата 20.10.2014, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

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



Код

namespace TestMyAPP
{
    class Program
    {

        public class UserData
        {
            public int Group { get; set; }
            public string Value { get; set; }

            public UserData(int Group, string Value)
            {
                this.Group = Group;
                this.Value = Value;
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("{0}", "Start APP");
            List<UserData> items = new List<UserData> { 
                new UserData(1,"Иван"),
                new UserData(2,"Николай"),
                new UserData(3,"Алексей"),
                new UserData(4,"Василий"),
                new UserData(1,"Михаил"),
                new UserData(2,"Егор"),
                new UserData(3,"Тимофей"),
                new UserData(4,"Игорь"),
                new UserData(5,"Михаил"),
            };
            var Users = from g in items
                        group g by g.Group into p
                        select new 
                        {
                            p.Key,
                            Data = string.Join(",", (from d in items
                                        where d.Group == p.Key
                                        select d.Value).ToArray())

                        };
            foreach (var d1 in Users)
            {
                Console.WriteLine("{0} - {1}", d1.Key,d1.Data);
            }
            Console.ReadLine();
        }
    }
}


Ну вот как то так можно попробовать


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




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


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

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