在LInq查询结果中查找列的最小值和最大值

时间:2014-08-10 10:26:19

标签: linq

我有这样的Linq查询:

var result = from c in displayedEmployees select new[] { c.Name, c.Code, c.Rank.ToString(), c.Id.ToString(),c.Rank. };

如果我想选择任何列的最小值和最大值,例如Rank以及类似:

var result = from c in displayedEmployees select new[] { c.Name, c.Code, c.Rank.ToString(), c.Id.ToString(),min(c.Rank) ,max(c.Rank)};

我该怎么做?

1 个答案:

答案 0 :(得分:0)

选择实际执行每个项目(displayedEmployee)的转换,因此最终会得到与您开始时相同数量的项目。最小值和最大值是减少量,它们将列表缩减为标量。

“select”关键字是一个仅收到当前项目的函数(在您的情况下为c)。所以没有办法获得最大值,你不希望结果中的每个项重复相同的最大值。

您应该分别计算最小值和最大值。

后:

var result = from c in displayedEmployees select { c.Name, c.Code, c.Rank };

你可以这样做:

var min = result.Min(x => x.Rank);
var max = result.Max(x => x.Rank);

在此处查看更多示例(LINQ 101):http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b