C# 未设置对象引用WHERE子句

C# 未设置对象引用WHERE子句,c#,C#,即使我正在创建一个列表的新实例,也没有设置一个对象引用 List<QueryCritera> whereClause = new List<QueryCritera>(); whereClause=viewConfig.WhereClause; foreach (QueryCritera condishion in whereClause) { string filedname = condishion.fieldName; string fie

即使我正在创建一个列表的新实例,也没有设置一个对象引用

 List<QueryCritera> whereClause = new List<QueryCritera>();
 whereClause=viewConfig.WhereClause;

 foreach (QueryCritera condishion in whereClause)
 {
    string filedname = condishion.fieldName;
    string fieldValue = condishion.Rightvalue;
    string operation = condishion.Operation;
 }
List whereClause=新列表();
whereClause=viewConfig.whereClause;
foreach(Where条款中的查询标准条件)
{
字符串filedname=condithion.fieldName;
字符串字段值=condition.Rightvalue;
字符串操作=条件操作;
}

您的视图配置必须为空

if(viewConfig != null)
{
   whereClause=viewConfig.WhereClause;
}

您的问题如下:

  • viewConfig
    null
  • viewConfig.where子句
    null
  • viewConfig.where子句
    不是
    null
    ,而是包含
    null
为了找出以上哪一项是正确的并采取相应的行动,您应该调试代码

虽然我正在创建一个列表的新实例


没错,您创建了一个空的
QueryCritera
对象列表。但是,稍后您将
whereClause
分配给保存此列表的变量,即
viewConfig.whereClause
,对于该变量,上面提到的某些情况是正确的,并且会导致问题。

new list()是无用的,因为您正在立即将列表重新分配给其他对象。它不会导致错误,但它是“条件”而不是“条件”。代码检查工具将显示这一点。不一定
viewConfig
可以为空,
viewConfig.WhereClause
可以为空,或者
viewConfig.WhereClause
列表不能为空,但包含空值。我们不知道是哪一行,因为OP没有说明错误发生在哪一行。他必须调试他的代码。不一定
viewConfig
可以为空,
viewConfig.WhereClause
可以为空,或者
viewConfig.WhereClause
列表不能为空,但包含空值。我们不知道是哪一行,因为OP没有说明错误发生在哪一行。他必须调试他的代码。@dcastro谢谢你的评论!我会相应地更新我的答案。