空のシーケンスを作成するには、次を使用します
var empty = Enumerable.Empty<string> ();
これと同じくらい簡単に空の辞書を作成するのに相当するものはありますか?
いいえ、同等のものはありません...
の目的はEnumerable.Empty<T>()
、空の配列の「キャッシュされた」インスタンスを返すことです。したがって、新しい配列を作成するオーバーヘッドを回避できます ( return new T[0];
)。
返されたインスタンスは後で変更される可能性があり、目的が無効になるため、これをIDictionary<TKey, TValue>
orのような非読み取り専用構造に変換することはできません...Dictionary<TKey, TValue>
何が問題なのnew Dictionary<string, string>()
ですか?
キーと値が同じ型 (例: 文字列) の場合:
Enumerable.Empty<string>().ToDictionary(x=>x, x=>x)