11
голосов
3ответов
889 просмотров

Is there anything magic about ReadOnlyCollection

Having this code... var b = new ReadOnlyCollection<int>(new[] { 2, 4, 2, 2 }); b[2] = 3; I get a compile error at the second line. I would expect a runtime error since ReadOnlyCollection<T> implements IList<T> and the this[T] have a setter in the IList<T> interface. I...

3
голосов
4ответов
1309 просмотров

How to prevent a method caller from modifying a returned collection?

I have methods returning private collections to the caller and I want to prevent the caller from modifying the returned collections. private readonly Foo[] foos; public IEnumerable<Foo> GetFoos() { return this.foos; } At the moment the private collection is a fixed array, but in the...

100
голосов
6ответов
46728 просмотров

Список только для чтения или неизменяемый список в .NET 4.0

Насколько я могу судить, в .NET 4.0 по-прежнему отсутствуют списки, доступные только для чтения. Почему во фреймворке все еще отсутствует эта функциональность? Разве это не одна из самых распространенных функциональных возможностей доменно-ориентированного дизайна ? Одним из немногих преимущ...

6
голосов
4ответов
7420 просмотров

Почему ReadOnlyCollection <> не включает такие методы, как FindAll (), FindFirst (),

Следуя советам FxCop и моим личным предпочтениям, я призывал команду, которую я тренирую, использовать ReadOnlyCollections как можно чаще. Хотя бы для того, чтобы получатели списков не могли изменять свое содержимое. По их теории, это хлеб с маслом. Проблема в том, что интерфейс List <> на...

1
голосов
5ответов
2983 просмотров

объект [] из ReadOnlyCollection <t></t>

У меня есть объект, который я получил в результате вызова отражения: object readOnlyCollectionObject = propertyInfo.GetValue(someEntity, null); Я знаю, что этот объект является общей коллекцией ReadOnlycollection. Это может быть ReadOnlyCollection&lt;Cat&gt;, ReadOnlyCollection&lt;Dog&gt; ...

124
голосов
5ответов
33646 просмотров

ReadOnlyCollection или IEnumerable для отображения коллекций членов?

Есть ли причина предоставлять внутреннюю коллекцию как ReadOnlyCollection, а не как IEnumerable, если вызывающий код выполняет только итерацию по коллекции? class Bar { private ICollection&lt;Foo&gt; foos; // Which one is to be preferred? public IEnumerable&lt;Foo&gt; Foos { ... ...