C#のDictionaryはキーにnullが入らない
C# の Dictionary のキーには、null を入れられませんよね。
キー自体には、NULL 許容型を指定することができます。しかし、以下のように書くと実行時にエラーとなります。
コンパイル時にエラーとなってくれればいいんですけどね…。
そもそも、連想配列なので、キーが null って何よ? ということなのは理解できます。
でも、ちょっとしたデータなんかをキーと値でペアにして持たせたいこともよくあります。場合によっては(使うことが許容されているチームなら)、Tuple を List に詰めて使います。
これにすると何がいいかというと、並び替えが簡単です。
スコープが短くて、ちょっと使いたい時には便利だと思っています。
値を Null にすることはできません
キー自体には、NULL 許容型を指定することができます。しかし、以下のように書くと実行時にエラーとなります。
コンパイル時にエラーとなってくれればいいんですけどね…。
var dic = new Dictionary<int?, string>(); dic.Add(null, "hoge");
そもそも、連想配列なので、キーが null って何よ? ということなのは理解できます。
でも、ちょっとしたデータなんかをキーと値でペアにして持たせたいこともよくあります。場合によっては(使うことが許容されているチームなら)、Tuple を List に詰めて使います。
var dic2 = new List<Tuple<int?, string>> { Tuple.Create<int?,string>(0, "ほげ"), Tuple.Create<int?,string>(1, "ほげほげ"), Tuple.Create(default(int?), "ぬる"), };
これにすると何がいいかというと、並び替えが簡単です。
// null が先頭に来ますけどねw orderbyDic2 = dic2.OrderBy(x => x.Item1);
スコープが短くて、ちょっと使いたい時には便利だと思っています。