13

我有一个列表,其值如下所示
使用 Linq 如何从 COL1 中获取所选 ID 的最小值和从 COL2 中获取的最大值。

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

根据下面的列表,它应该显示 id221 1 56222 1 34 帮助我

4

2 回答 2

42

如果您想要列表中每个 ID 的 Min 和 Max 值,那么您必须分组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);
于 2013-05-22T06:20:25.170 回答
1

您可以进行排序,例如:

var min = yourList.OrderBy(p => p.Col1).First();
var max = yourList.OrderByDescending(p => p.Col1).First();
于 2020-01-11T14:32:42.127 回答