这是编译器从以下查询表达式生成的代码吗?

时间:2011-09-11 17:57:07

标签: c# linq

     var result = from c1 in a1
                  from c2 in a1.a2
                  from c3 in a1.a2.a3
                  select new { c1.id, c2.id, c3.id };

这是编译器从上面的查询表达式生成的代码:

var result = a1.SelectMany(
      c1 => a1.a2.SelectMany(
         c2 => a1.a2.a3.Select(
            c3 => new {c1,c2,c3})));

谢谢

1 个答案:

答案 0 :(得分:3)

你是对的。

这是一个完整的外部联接,将包含a1.Count * a2.Count * a3.Count个项目,包括来自源序列的每个项目组合/