I have following LINQ statement and I want to rewrite it using extension methods.
from x in e
from y in e
from z in e
select new { x, z }
One possible solution is:
e.Join(e, x => 42, y => 42, (x, y) => new { x, y })
Join(e, _ => 42, z => 42, (_, z) => new { _.x, z });
However this is everything but elegant.
Do you any idea how to improve beauty of second expression?
e.SelectMany(x => e.SelectMany(y => e.Select(z => new { x, z })))
Using Join
is the wrong approach IMO.
The direct equivalent of this is (I think!):
e.SelectMany(x => e.SelectMany(y => e.Select(new { y, z }),
(x, yz) => new { x, yz.z }))
Although I think it would be equivalent to:
e.SelectMany(x => e.SelectMany(y => e.Select(new { x, z })))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With