Все вопросы: [readonly-collection]
6 вопросов
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...
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...
Список только для чтения или неизменяемый список в .NET 4.0
Насколько я могу судить, в .NET 4.0 по-прежнему отсутствуют списки, доступные только для чтения. Почему во фреймворке все еще отсутствует эта функциональность? Разве это не одна из самых распространенных функциональных возможностей доменно-ориентированного дизайна ? Одним из немногих преимущ...
Почему ReadOnlyCollection <> не включает такие методы, как FindAll (), FindFirst (),
Следуя советам FxCop и моим личным предпочтениям, я призывал команду, которую я тренирую, использовать ReadOnlyCollections как можно чаще. Хотя бы для того, чтобы получатели списков не могли изменять свое содержимое. По их теории, это хлеб с маслом. Проблема в том, что интерфейс List <> на...
объект [] из ReadOnlyCollection <t></t>
У меня есть объект, который я получил в результате вызова отражения: object readOnlyCollectionObject = propertyInfo.GetValue(someEntity, null); Я знаю, что этот объект является общей коллекцией ReadOnlycollection. Это может быть ReadOnlyCollection<Cat>, ReadOnlyCollection<Dog> ...
ReadOnlyCollection или IEnumerable для отображения коллекций членов?
Есть ли причина предоставлять внутреннюю коллекцию как ReadOnlyCollection, а не как IEnumerable, если вызывающий код выполняет только итерацию по коллекции? class Bar { private ICollection<Foo> foos; // Which one is to be preferred? public IEnumerable<Foo> Foos { ... ...