C# 在上下文中找不到可查询变量
上面显示的骨架与我使用的骨架相似。在第一个if-then-else序列中,我初始化了一个名为query的查询变量(在LINQ中使用),然后在下一个if-语句中检查它。但环境仍然表示查询不在当前上下文中显示。如果单独使用If-then语句中的代码,则不会发现任何问题。在我看来,问题在于变量的初始化。你还有其他建议吗C# 在上下文中找不到可查询变量,c#,linq,C#,Linq,上面显示的骨架与我使用的骨架相似。在第一个if-then-else序列中,我初始化了一个名为query的查询变量(在LINQ中使用),然后在下一个if-语句中检查它。但环境仍然表示查询不在当前上下文中显示。如果单独使用If-then语句中的代码,则不会发现任何问题。在我看来,问题在于变量的初始化。你还有其他建议吗 如果您知道如何使用null值初始化一个要用link查询的变量,我也很高兴听到这个消息。谢谢大家! 在if-else之前声明变量: if(){...} else{...}
如果您知道如何使用null值初始化一个要用link查询的变量,我也很高兴听到这个消息。谢谢大家! 在if-else之前声明变量:
if(){...}
else{...}
if ( query.Count > 0 ){...}
问题是“query”变量的范围需要大于您定义“query”的范围 但是由于您已经使用了var,所以在有足够的信息供编译器选择类型之前,您不能声明“query” 要解决这个问题,只需在所需的范围内声明变量的类型(不要使用var)
IEnumerable查询=null;
如果()
{
查询=。。。
}
其他的
{
查询=。。。
}
if(query.Any())
Linq中的任何内容都不依赖于
var
关键字的使用。了解更多关于var
什么是真正的类…我希望变量包含一个列表(或者在本例中是它的第一个条目。因此它是iVariable类型。不允许使用var query;,因为它不是真正的初始化。通常,它是IEnumerable
,其中T是您要获取的任何内容。
//replace var with the actual type, of course
var query;
if(){...}
else{...}
if (query.Count > 0){...}
IEnumerable<Customer> query = null;
if ()
{
query = ...
}
else
{
query = ...
}
if (query.Any())