次のクエリ式を対応するC#コードに変換するにはどうすればよいですか?ありがとう。LINQ質問:クエリ式をC#コードにマップ
var list1 = (from ol in orderedList
from er in ol.Er
from rd in er.Rd
where rd.ftr != ""
select ol).ToList<CRInfo>();
次のクエリ式を対応するC#コードに変換するにはどうすればよいですか?ありがとう。LINQ質問:クエリ式をC#コードにマップ
var list1 = (from ol in orderedList
from er in ol.Er
from rd in er.Rd
where rd.ftr != ""
select ol).ToList<CRInfo>();
:
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をダウンロードして、このようなクエリ式を非常に簡単に翻訳できると思うかもしれません。
まあ、脇
...あなたのコードが既に C#コードであることを明白な事実から、私はあなたが実際の列挙メソッド呼び出しを取得したいと仮定しますか?もしそうなら、それをコンパイルしてReflectorに投げてください。それはこのような何かに変換でしょう
Um ...これはC#コードです。 – spender
これはまさにC#コードです – ratty