我有一个表格(HallPlan
),其中包含字段:
Row, Seat, Width, Height, X, Y
按Y
分组收集:
var ordered = hallPlans.GroupBy(s => s.Y).OrderBy(o => o.Key);
现在我想从每个组的所有最小X中选择最大X.例如ordered
包含三个组,我们有:
first group contains 3 records with X coordinates: 15, 50, 80;
second group contains: 16, 50,80;
and last group contains: 15, 40, 60;
从每个组中选择所有分钟:15, 16, 15
并从上面选择最大值:16
。
如何使用LINQ执行此操作?
感谢。
答案 0 :(得分:1)
您可以使用Min
和Max
功能。
class HallPlan { public int X { get; set; } }
...
var groups = new[]{
new []{new HallPlan{X=15},new HallPlan{X=50},new HallPlan{X=80}},
new []{new HallPlan{X=16},new HallPlan{X=50},new HallPlan{X=80}},
new []{new HallPlan{X=15},new HallPlan{X=40},new HallPlan{X=60}}
};
var maxmin = groups.Select(g => g.Min(h => h.X)).Max(); // result is 16
groups.Select(g => g.Min(h => h.X))
会从每个组中选择最小值HallPlan.X
,然后.Max()
将返回其中的最大值。
答案 1 :(得分:1)
var allMinX = ordered.Select(g => g.Min(s => s.X));
var minMax = allMinX.Max();