我有这样的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)};
我该怎么做?
答案 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