2013-05-22 296 views
10

我有一個列表,其值如下所示
使用Linq我如何從COL1中獲取最小值,並從COL2中爲選定的ID獲取最大值。使用LINQ獲取最小值和最大值使用LINQ

id  COL1  COL2 
===================== 
221  2   14 
221  4   56 
221 24   16 
221  1   34 
222 20   14  
222  1   12 
222  5   34  

基於下面的列表中就應該顯示ID 221 1 56222 1 34 幫助我出去

+0

你想分鐘,每個ID最多價值? – Habib

回答

28

如果你想在列表中的每個ID最小和最大價值,那麼你必須按ID和獲得最大和最小相應的喜歡:

var query = yourList.GroupBy(r=> r.ID) 
        .Select (grp => new 
           { 
           ID = grp.Key, 
           Min = grp.Min(t=> t.Col1), 
           Max = grp.Max(t=> t.Col2) 
           }); 

使用Enumerable.Max方法計算最大,如:

var max = yourList.Max(r=> r.Col1); 

使用Enumerable.Min方法對像場計算最低:

var min = yourList.Min(r=> r.Col2); 
+1

OP提及'選擇的id',所以你應該使用'Where'來過濾。 –

+0

@VimalStan,是的,再次閱讀問題並修改了答案 – Habib

+0

'thanks' @Habib – Lakmal

相關問題