List.FindAll() 显示空列值的错误


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

我有一个已提供的所有员工和新员工的列表emp_cod值为 null。

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

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

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

你可以试试:

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

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

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

或者如果你可以使用字符串,那就更好了。IsNull或Empty就像Adrian的答案一样。

您也可以尝试字符串。IsNull或WhiteSpace(如果要检查空、空和空格(,但仅当您使用的是 .Net 4.0 或更高版本时

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

相关内容

最新更新