Pelo que posso dizer, o .NET 4.0 ainda carece de listas somente leitura. Por que o framework ainda carece dessa funcionalidade? Não é esta uma das peças mais comuns de funcionalidade para design orientado a domínio ?
Uma das poucas vantagens do Java sobre o C # é na forma do método Collections.unmodifiablelist (list) , que parece estar muito atrasado em IList <T> ou List <T>.
Usar IEnumerable<T>
é a solução mais fácil para a questão - ToList
pode ser usado e devolve uma cópia.
List<T>
é escrever o seu. Não há nenhuma classe interna que eu conheça que ofereça suporte a todos os recursos "somente leitura" prontosList<T>
para usoContains
, como consultas LINQ etc.