Pages

2016/03/01

c#のKeyValuePairでnullチェック

nullチェック
FirstOrDefault() で条件に合う値が取得できなかったことをチェックする場合、KeyValuePair では少し書き方を変える必要があります。== null と書きたくなりますが、default で規定値かどうかのチェックを行います。

C# の規定値(default)によるチェック

注意点としては、Equals は内部的に型変換をしてしまうため、default の型を合わせておかないと、思った通りの結果にならないことがあります。

var kvp = new List<KeyValuePair<int, string>>() { new KeyValuePair<int, string>(1, "hoge"), };
var result = kvp.FirstOrDefault(x => x.Value == "ほげ");
if (result.Equals(default(KeyValuePair<int, string>)))
{
 Console.WriteLine("null");
}
// この書き方だと、チェックをすり抜けてしまうので注意。
if (result.Equals(default(KeyValuePair<string, string>)))
{ 
 Console.WriteLine("null");
}
Related Posts Plugin for WordPress, Blogger...