0
objLst = objLst.FindAll(c => c.Emp_cod.Equals(string.Empty)
                || c.Emp_cod.Equals(null))

我有一份所有员工和新员工的列表,他们的 emp_cod 值为 null。

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

Emp_cod 列是从 SQL 导入 DBML 时定义如下的字符串:

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

2 回答 2

4

你可以试试:

objLst = objLst.Where(c => String.IsNullOrEmpty(c.Emp_cod));
于 2012-09-12T06:39:36.313 回答
1

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

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

或者如果您可以像 Adrian 的回答那样使用string.IsNullOrEmpty会更好。

如果您想检查空、空和空格,也可以尝试string.IsNullOrWhiteSpace ,但前提是您使用的是 .Net 4.0 或更高版本

objLst = objLst.FindAll(c => string.IsNullOrWhiteSpace(c.Emp_code))
于 2012-09-12T06:46:08.350 回答