linq group by First () - PullRequest
       2

linq group by First ()

1 голос
/ 06 февраля 2012

У меня есть следующий список

 ID  Counter  SrvID FirstName 
 --  ------   ----- ---------   
 1   34       66M   James 
 5   34       66M   Keith 
 3   55       45Q   Jason 
 2   45       75W   Mike 
 4   33       77U   Will 

Что я хотел бы сделать, это заказать по ID по возрастанию, а затем получить первое значение Counter, SrvID, которые идентичны (если есть).

Таким образом, выходные данные будут выглядеть примерно так:

ID  Counter  SrvID FirstName 
--  ------   ----- ---------   
1   34       66M   James 
2   45       75W   Mike 
3   55       45Q   Jason 
4   33       77U   Will 

Обратите внимание, как идентификатор 5 удаляется из списка, так как счетчик и SrvID были идентичны тем, которые были у меня для идентификатора 1, но как идентификатор 1 пришел первым, яудалено 5.

Я попробовал следующее, но не работало:

     var query =   from record in list1   
     group record by new {record.Counter, record.SrvID } 
     into g   
     let winner =   (from groupedItem in g 
     order by groupedItem.ID     
     select groupedItem   ).First()   
     select winner; 

Я получаю следующее сообщение: Метод «Первый» может использоваться только в качестве конечной операции запроса.

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Самое смешное, полное сообщение об ошибке:

"NotSupportedException: The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead."

2 голосов
/ 06 февраля 2012

У меня была проблема с использованием First в Entity Framework, вы пытались изменить на FirstOrDefault?

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