我遵循LINQ语句,我想使用扩展方法重写它.
from x in e
from y in e
from z in e
select new { x, z }
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方案是
e.Join(e, x => 42, y => 42, (x, y) => new { x, y })
Join(e, _ => 42, z => 42, (_, z) => new { _.x, z });
Run Code Online (Sandbox Code Playgroud)
然而,这一切都很优雅.
你知道如何提高第二表达的美感吗?
使用Join是IMO的错误方法.
直接相当于(我认为!):
e.SelectMany(x => e.SelectMany(y => e.Select(new { y, z }),
(x, yz) => new { x, yz.z }))
Run Code Online (Sandbox Code Playgroud)
虽然我认为这相当于:
e.SelectMany(x => e.SelectMany(y => e.Select(new { x, z })))
Run Code Online (Sandbox Code Playgroud)
e.SelectMany(x => e.SelectMany(y => e.Select(z => new { x, z })))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |