З того, що я можу сказати, .NET 4.0 все ще не має списків, доступних лише для читання. Чому в рамках все ще не вистачає цієї функціональності? Це не один із найпоширеніших фрагментів функціональності для дизайну, керованого доменом ?
Однією з небагатьох переваг, яку Java має над C #, є це у вигляді методу Collections.unmodifiablelist (list) , який, здається, давно назрів у IList <T> або Список <T>.
Використання IEnumerable<T>є найпростішим рішенням питання - ToListможе бути використаний і повернути копію.
List<T>- це написати свій власний, у нас немає вбудованого класу, який би мені знав, який би підтримував усі функції "лише для читання"List<T>поза коробкою, наприкладContains, запити LINQ тощо.