我遵循LINQ语句,我想使用扩展方法重写它。
from x in e
from y in e
from z in e
select new { x, z }
一种可能的解决方案是:
e.Join(e, x => 42, y => 42, (x, y) => new { x, y })
Join(e, _ => 42, z => 42, (_, z) => new { _.x, z });
然而,这一切都很优雅。
你知道如何提高第二种表达的美感吗?
答案 0 :(得分:6)
使用Join
是错误的方法IMO。
直接相当于(我认为!):
e.SelectMany(x => e.SelectMany(y => e.Select(new { y, z }),
(x, yz) => new { x, yz.z }))
虽然我认为但它等同于:
e.SelectMany(x => e.SelectMany(y => e.Select(new { x, z })))
答案 1 :(得分:6)
e.SelectMany(x => e.SelectMany(y => e.Select(z => new { x, z })))