0

フィールドを持つテーブル ( HallPlan) があります。

Row, Seat, Width, Height, X, Y

およびグループ化されたコレクションY:

var ordered = hallPlans.GroupBy(s => s.Y).OrderBy(o => o.Key);

ここで、各グループのすべての最小 X から最大 X を選択したいと考えています。たとえばordered、次の 3 つのグループが含まれています。

first group contains 3 records with X coordinates: 15, 50, 80;
second group contains: 16, 50,80;
and last group contains: 15, 40, 60;

各 groupes: からすべての min を15, 16, 15
選択し、上記から max を選択します: 16

LINQでこれを行うにはどうすればよいですか?
ありがとう。

4

2 に答える 2

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()それらの最大値を返します。

于 2012-07-09T09:56:47.877 に答える
1
var allMinX = ordered.Select(g => g.Min(s => s.X));
var minMax  = allMinX.Max();
于 2012-07-09T09:58:47.967 に答える