2

aa linq group by 句でxが何のためにあるのか興味があります: group x by ...

x は 1 に置き換えることができます。

       var query = from box in c.Boxes
                    join item in c.Items on box equals item.Box
                    group 1 by new { BoxId = box.BoxId, item.ItemType.ItemTypeId } into g
                    select new {  g.Key.BoxId, g.Key.ItemTypeId, Count = g.Count() };

x (または group by で選択した任意のローカル変数) が実際に何らかの値を持つサンプルを持っている人はいますか?

つまり

var query2 =  from box in c.Boxes
                              group box by box.BoxId into q
                              select q.Key;

で置き換えることができます

var query2 =  from box in c.Boxes
                              group 1 by box.BoxId into q
                              select q.Key;
4

2 に答える 2

2

group byこれは、句の出力に何が入るかを決定する式です。

実際には出力全体を検査しているのではなく、上記の例と同じである のみを検査していますKeys。これは、グループ化が同じこと ( box.BoxId) によって行われているためです。

ただし、最後の行を次のように置き換えます。

select q.Key;

select q;

次のことに注意してください。

  • group 1 by ...クエリは、すべての値が 1 に設定された を返しIGrouping<int, int>ます
  • group box by ...クエリは を返します。IGrouping<int, Box>これには、すべての boxId キーと、それらのそれぞれについてBox、グループ化基準に関して対応するオブジェクトが含まれます。
于 2013-08-10T10:08:11.580 に答える