0

クエリ記法ジョインをドット記法で書く方法は知っていますが、クロスジョインをドット記法でどのように書くのでしょうか?

    List<Alpha> als = new List<Alpha>{new Alpha(), new Alpha()};
    List<Bravo> bros = new List<Bravo>{new Bravo(), new Bravo()};

    //so far so good.
    var res = from a in als
              from b in bros
              select new { A = a, B = b };

    var what = res.ToArray();

    //hmmmm.  Not so sure.
    var result = als.Join(bros, null, null, (x, y) => new { X = x, Y = y });

この質問を別の方法で尋ねると、C# コンパイラがクロス結合クエリの表記法を目に見えない形でドット表記法に変換する場合、そのドット表記法はどのように見えるでしょうか?

4

3 に答える 3

2

私はそれだと思います

als.SelectMany(x => bros, (a, b) => new {A = a, B = b});
于 2013-04-24T04:21:24.753 に答える
1
 als.SelectMany(a => bros.Select(b =>  new {A = a, B = b}));
于 2013-04-24T04:48:25.090 に答える
-1

次のようになります。

var res = als.Join(bros,
    alsItem => alsItem.IdToJoin,
    brosItem => brosItem.OtherId,
    (alsItem, brosItem) => {X = alsItem, Y = brosItem});
于 2013-04-24T04:27:59.623 に答える