Convertを2回呼び出すことなく、バリアント型のabcを使用することはどういうことですか?私はデフのような意味ですが、第二のものはありませんか?LINQ:選択結果はどこにありますか?
ような何か:
var desired = (from x in AnswerRecords
select Converter(x) as bla
where bla != null
).ToList();
Convertを2回呼び出すことなく、バリアント型のabcを使用することはどういうことですか?私はデフのような意味ですが、第二のものはありませんか?LINQ:選択結果はどこにありますか?
ような何か:
var desired = (from x in AnswerRecords
select Converter(x) as bla
where bla != null
).ToList();
あなたのケースは、正確にlet
キーワードの使用に適しています。
はConverter
の結果を格納し、それを確認するためにそれを使用する:この質問の内容の
var result = from item in AnswerRecords
let converted = Converter(item)
where converted != null
select converted;
あなたがチェーンメソッド呼び出し構文を使用すると、簡単に呼び出しをチェーンすることができます...
AnswerRecords.Select(x => Converter(x)).Where(x => x != null).ToList();
そしてさらに短い:
AnswerRecords.Select(Converter).Where(x => x != null).ToList();
編集:
var desired = (
from y in (
from x in AnswerRecords
select Converter(x)
)
where y != null
select y
).ToList();
95と同様%はあなたが求めているものとは何の関係も*を*していません。完全に無関係のコードを大量に含むべきではありません。 – Servy