2012-09-12 52 views
0
objLst = objLst.FindAll(c => c.Emp_cod.Equals(string.Empty) 
       || c.Emp_cod.Equals(null)) 

我有一个所有员工和新员工谁已提供列表emp_cod值null。List.FindAll()显示为空列值的错误

现在,当我试图找到使用上面的代码的新员工时,它给出了对象引用错误。

Emp_cod列串定义为从SQL导入到DBML当下面:

[Column(Storage = "_Emp_cod", DbType = "VarChar(10)")] 
public string Emp_cod { get; set; } 

回答

4

你可以试试:

objLst = objLst.Where(c => String.IsNullOrEmpty(c.Emp_cod)); 
1

你所得到的错误的原因是因为你试图调用实例方法Equals上的null对象。你需要首先检查null,然后检查字符串是否为空。

objLst = objLst.FindAll(c => c.Emp_cod != null && c.Emp_cod.Equals(string.Empty)); 

或者,如果你可以使用string.IsNullOrEmpty像阿德里安的回答更好。

你也可以尝试string.IsNullOrWhiteSpace如果要对证,空,空和空格,但只有当你使用的是.NET 4.0或更高版本

objLst = objLst.FindAll(c => string.IsNullOrWhiteSpace(c.Emp_code))