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; }
答案 0 :(得分:4)
您可以尝试:
objLst = objLst.Where(c => String.IsNullOrEmpty(c.Emp_cod));
答案 1 :(得分:1)
您收到错误的原因是您尝试在null对象上调用实例方法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))