如何将以下查询表达式转换为相应的C#代码?感谢。
var list1 = (from ol in orderedList
from er in ol.Er
from rd in er.Rd
where rd.ftr != ""
select ol).ToList<CRInfo>();
答案 0 :(得分:6)
它会转化为这样的东西:
var list1 = orderedList.SelectMany(ol => ol.Er, (ol, er) => new { ol, er })
.SelectMany(z => z.er.Rd, (z, rd) => new { z, rd })
.Where(z2 => z2.rd.frt != "")
.Select(z2 => z2.z.ol)
.ToList<CRInfo>();
“z”和“z2”位是透明标识符,由C#编译器用于通过查询传播多个范围变量。
您可能需要下载LINQPad,我相信这可以让您轻松翻译这样的查询表达式。
答案 1 :(得分:1)
嗯,除了您的代码已经 C#代码这一显而易见的事实......
我假设你想获得实际的Enumerable方法调用?如果是这样,你可以编译它并将其扔进Reflector。