2013-05-22 2 views
10

У меня есть список, который имеет значения, как показано ниже
Использование Linq, как я могу получить минимум от COL1 и максимум от COL2 для выбранного идентификатора.Получить минимальное и максимальное значение с помощью 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  

Исходя из списка ниже он должен отображаться идентификатор 221 1 56 и 222 1 34 помочь мне

+0

Хочет мин и максимальное значение для каждого ID? – Habib

ответ

28

Если вы хотите, Мин и Макс значение для каждого идентификатора в списке, то вы должны группе ID а получить MAX и Min соответственно нравится:

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 упоминает 'для выбранного идентификатора ', поэтому вы, вероятно, должны использовать' Where' для фильтрации. –

+0

@VimalStan, да, снова прочитайте вопрос и измените ответ – Habib

+0

'thanks' @Habib – Lakmal

Смежные вопросы