Оператор orderby использует вызов метода First (), зачем это нужно? - PullRequest
1 голос
/ 05 февраля 2011

Я новичок в Linq, и мне интересно, почему вызов метода First () необходим при заказе округом в следующем запросе.Кроме того, зная , почему это необходимо, можно ли добиться того же результата с помощью метода Last () ?

var hsQ = from hspt in hospitals
          orderby hspt.City
          group hspt by hspt.County into hsptGroup
          orderby hsptGroup.First().County
          select hsptGroup;

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

Ответы [ 2 ]

5 голосов
/ 05 февраля 2011

Это потому, что hsptGroup содержит группу больниц, а не одну больницу.

Несмотря на то, что все больницы в этой группе имеют один и тот же округ, вам все равно нужно указать .First(), чтобы вы могли ссылаться на округ одной больницы.

0 голосов
/ 05 февраля 2011

На самом деле это First используется для доступа к первому элементу в коллекции предметов, сгруппированных. Таким образом, впоследствии заказ осуществляется на основе округа Первого предмета. Да, вы можете сделать Последний, и таким образом заказ будет осуществляться на основе последнего элемента в Сгруппированной коллекции.

...