C#ではLINQとIEnumerableを使います。そして、すべては善良で良い(または少なくともほとんどそうである)。C#に「空リスト」シングルトンがありますか?
しかし、ほとんどの場合、私は空のIEnumerable<X>
をデフォルトとして必要としています。つまり、ヌルチェックを必要とせずに
for (var x in xs) { ... }
を動作させていただきたいと思います。アレイを作成して任意の「余分なオーバーヘッド」がある場合、である - 上記の私ためまったく問題ありながら、今
var xs = f() ?? new X[0]; // when xs is assigned, sometimes
for (var x in xs ?? new X[0]) { ... } // inline, sometimes
:今、これは私が現在より大きな文脈に応じて、何をすべきかです私はちょうどを気にしないオブジェクト - 私は思っていた:C#の/の "空の不変のIEnumerable/IListの" シングルトンは、NET
ありますか。?(そして、してもいない場合は、上記のケースを処理するために、「より良い」方法はありますか?)
JavaはCollections.EMPTY_LIST
不変シングルトンがある - Collections.emptyList<T>()
を経由して「よく型付け」 - 私が、この目的を果たしますジェネリックスが異なる方法で処理されるため、C#でも同様の概念が機能するかどうかはわかりません。
ありがとうございました。
まあ、これは私がList/IListに焦点を当て、Enumerable/IEnumerableではなく、全員に感謝しています。 –
http:// stackoverflow。COM /質問/ 3229698 /方法缶-I-戻り、空のIEnumerable –
'パブリック静的クラスArray {パブリック静的読み取り専用T []は空=新しいT [0]。 } 'と呼び、それは' Array .Empty'のように呼び出すことができます。私は[ここCodeReview](http://codereview.stackexchange.com/q/20417/17039)について尋ねました。 –