web-dev-qa-db-ja.com

varのnull値を確認する方法は?

PetaPoco Micro-ORMをC#4.0で使用しています。

以下のコードは、データベースから単一の行を取得します。

var result = db.SingleOrDefault<TdUsers>(getUserQuery);

結果に行が含まれているかどうか、およびがnullかどうかを確認したいと思います。これを行う最良の方法は何ですか?

14
RKh
_if (result == null || result.Count() == 0) {
    // Checks whether the entire result is null OR
    // contains no resulting records.
}
_

Linqは遅延読み込みであるため、問題はnullのチェックではないと思います。エラーは、式db.SingleOrDefault<TdUsers>(getUserQuery);の使用にあります。

.Single<T>(expression)はnullを返しません-結果が値を返さない場合はエラーになります。ただし、.SingleOrDefault<T>(expression)は、式が値を返さない場合はnull値を返すため、ここで使用しているように、if (result == null)型チェックと組み合わせるのが最適です。

20
Parv Sharma
var result = db.SingleOrDefault<TdUsers>(getUserQuery);

上記のコードでは、SingleOrDefaultはnull値または指定されたジェネリック型を返します(ランタイムでは既知です)。

返された値がnullかどうかを確認するために、単純に使用できます

if(result!=null)
{
//do your code stuff 
}
else
{
//stuff do be done in case where result==null
}
3
shanky

あなたがすることができます:

result.ToList() // Convert result to a list

if (result.Any()) {
   // result is not null
}
3
Darren
 var v = result.ToList();

今チェック

if (v.Count > 0)
1