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オブジェクトでインスタンスメソッドを呼び出そうとしているためです。最初にnullをチェックしてから、文字列が空であることをチェックする必要があります。

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

または、エイドリアンの答えのようにstring.IsNullOrEmptyを使用できる場合はさらに良いでしょう。

.Net 4.0以降を使用している場合に限り、null、空、および空白をチェックする場合は、string.IsNullOrWhiteSpaceを試すこともできます。

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