Используя Linq, как разделить список на сгруппированные объекты по имени? - PullRequest
1 голос
/ 30 марта 2010

У меня есть таблица, где запись выглядит так

varchar(255) Name  
varchar(255) Text  
varchar(255) Value 

Имя - это имя DDL, текст - это то, что отображается, а значение возвращается при выборе. Существует от одного до двадцати вариантов для каждого имени. Без итерации каждой опции, например курсора, есть ли способ вытащить список объектов, по одному на каждое уникальное имя DDL, используя Linq и C #?

Образец данных:

Beds   '4 (10)'  4
Beds   '5 (1)'   5
Beds   '7 (1)'   7
Baths  'NA (13)' NULL
Baths  '0 (1)'   0
Baths  '1 (13)'  1

Я думал о внешнем выборе, чтобы получить уникальные имена, затем о внутреннем выборе, чтобы получить список опций для него, а затем вернуть набор в виде списка набора списков.

1 Ответ

5 голосов
/ 30 марта 2010

Конечно, просто используйте group ... by

var query = from item in context.TableName
            group item by item.Name;

В качестве альтернативы без выражения запроса:

var query = context.TableName.GroupBy(item => item.Name);

Результатом будет IQueryable<IGrouping<string, ItemType>>. Каждый элемент в результате будет группировка : ключ и последовательность элементов с этим ключом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...