簡體   English   中英

linq通過First()分組

[英]linq group by First()

我有以下清單

 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 

請注意,如何將ID 5從列表中刪除,因為Counter和SrvID與我對ID 1的擁有相同,但是當ID 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; 

我收到以下消息:方法“ First”只能用作最終查詢操作。

有趣的是,完整的錯誤消息是:

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

我在實體框架中使用First遇到問題,您是否嘗試過更改為FirstOrDefault

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM