Как сгруппировать по свойству в коллекции объектов с помощью LINQ? - PullRequest
2 голосов
/ 15 сентября 2009

У меня есть коллекция объектов как Dim XXX As IEnumerable(Of MyObject), которая была заполнена. В MyObject есть свойство, которое я хочу сгруппировать, например MyObject.MyCode.

Просматривая примеры LINQ, неясно, что делает синтаксис Group XX By INTO, и я не могу понять его.

Итак, что мне нужно, так это возможность группировать по значению MyCode и видеть, сколько из каждого значения у меня есть в XXX.

Я знаю, что не очень хорошо объяснил, но надеюсь, что LINQ человек получит это.

Спасибо

Ryan

Ответы [ 3 ]

3 голосов
/ 15 сентября 2009

В следующем C #-коде показано, как это сделать (извините, но я не большой человек из VB.NET):

var myGroups = from p in myObject
               group p by p.MyCode into g
               select new { Category1 = g.Key, Category = g };

Ключевое слово into в основном берет результат группы и помещает его в новый элемент, к которому вы можете обратиться в выбранной вами части.

2 голосов
/ 15 сентября 2009

В основном операция «Группировка по» имеет две проекции:

  • Что вы хотите сгруппировать? (Ключ)
  • Что вы хотите, чтобы группа содержала? (Значение)

Так, например, предположим, у нас есть группа людей. Вы можете сгруппировать их имена по возрасту, например

  • 18: Боб, Джефф, Дейв
  • 21: Дженнифер, Мэтт

и т.д.

Если вы используете метод GroupBy напрямую, вам нужно только указать ключевой селектор, в этом случае селектором значения по умолчанию будет «значение в последовательности» (например, в нашем примере выше по умолчанию будет «группировать Person объекты по возрасту»).

Если вы используете синтаксис выражения запроса, это будет зависеть от того, какой язык вы используете. Вы можете эффективно игнорировать часть "into" для начала - это всего лишь продолжение запроса ; это все равно что сказать: «Я не хочу больше ни одной из других переменных, которые я использовал в запросе, только результаты группировки» (которые затем можно использовать в последующих битах запроса).

1 голос
/ 15 сентября 2009

от отгрузки в OrderTable _

Группа по отгрузке. Доставка zip _

В Итого = Сумма (Отгрузка. Стоимость), Средняя (Отгрузка. Стоимость)

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