我有一个列表,其值如下所示 使用Linq如何从COL1获得最小值,从COL2获得所选id的最大值。
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 56
和222 1 34
帮助我
答案 0 :(得分:34)
如果您想要列表中每个ID的最小值和最大值,则必须按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 :(得分:0)
您可以进行排序,例如:
var min = yourList.OrderBy(p => p.Col1).First();
var max = yourList.OrderByDescending(p => p.Col1).First();