2013-05-22 15 views
10

Aşağıda gösterildiği gibi değerlere sahip bir listeye sahibim
Linq'i kullanarak, seçilen kimlik için COL1 ve COL2'den en düşük değeri nasıl alabilirim? Eğer listedeki her kimlik için Min ve Max değer istiyorsanız o id 221 1 56 ve 222 1 34 yardım bana dışarı göstermesi gerekir aşağıdaki listeden dayanarakLinq kullanarak minimum ve en yüksek değeri elde edin

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

+0

her kimliği için minimum ve maksimum değeri istiyor musunuz? – Habib

cevap

28

, o zaman ID tarafından grubuna sahip elde MAX ve Min buna göre gibi:

: gibi maksimum hesaplamak için

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) 
           }); 

kullanımı Enumerable.Max yöntemi gibi bir alanda en az hesaplamak için

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

Kullanım Enumerable.Min yöntemi:

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

OP, seçili id ​​için '' seçer, bu yüzden muhtemelen 'Where' filtresini kullanmalısınız. –

+0

@VimalStan, evet, soruyu tekrar okuyun ve cevabı değiştirdim – Habib

+0

'thanks' @Habib – Lakmal

İlgili konular