if(){...}
else{...}
if ( query.Count > 0 ){...}
上面显示的骨架类似于我使用的骨架。在第一个if-then-else序列中,我初始化一个名为query的查询变量(在LINQ中使用),然后在下一个if -statement中检查它。环境仍然表示查询未在当前上下文中显示。如果单独使用if-then语句中的代码 - 则不会出现任何问题。在我看来,问题在于变量的初始化。你有什么其他的建议?
如果你知道如何用null值初始化一个要用链接查询的变量 - 我也很高兴听到这个。谢谢!
答案 0 :(得分:2)
在if-else:
之前声明变量//replace var with the actual type, of course
var query;
if(){...}
else{...}
if (query.Count > 0){...}
答案 1 :(得分:0)
问题是“查询”变量的范围需要大于您定义“查询”的范围。
但是既然你已经使用了var,那么在有足够的信息让编译器选择类型之前你不能声明“查询”。
要解决此问题,只需在所需范围内声明变量的类型(不要使用var)。
IEnumerable<Customer> query = null;
if ()
{
query = ...
}
else
{
query = ...
}
if (query.Any())
Linq中的任何内容都不取决于var
关键字的使用。详细了解var
here。