私の知る限りでは、.NET 4.0にはまだ読み取り専用リストがありません。なぜフレームワークはまだこの機能を欠いているのですか?これは、ドメイン駆動設計の最も一般的な機能の1つではありませんか?
JavaがC#よりも優れている数少ない利点の1つは、Collections.unmodifiablelist(list)メソッドの形式です。これは、IList <T>またはList <T>ではかなり遅れているようです。
を使用することIEnumerable<T>
は、質問に対する最も簡単な解決策です- ToList
使用でき、コピーを返します。
List<T>
は自分で書くことです。私が知っている組み込みのクラスは、LINQクエリなどList<T>
、すぐContains
に使える「読み取り専用」機能のすべてをサポートしていません。