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");
}

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する