是否有可能使用变种abc而不必调用两次转换?我的意思是像def,但没有第二个来自?LINQ:选择结果在哪里?
喜欢的东西:
var desired = (from x in AnswerRecords
select Converter(x) as bla
where bla != null
).ToList();
是否有可能使用变种abc而不必调用两次转换?我的意思是像def,但没有第二个来自?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