Я пытаюсь понять, , что было бы лучшим способом опубликовать Readonly List объектов как общедоступный метод?
Из Блог Эрика Липперта, Массивы нехорошо, потому что кто-то может легко добавить новую запись. Поэтому каждый раз при вызове метода нужно было бы передавать новый массив.
Он предлагает передать IEnumerable<T>
, так как это определение только для чтения (без добавления, удаления методов), которое я практиковал довольно давно.
Но в нашем новом проекте люди даже начали создавать массивы этих IEnumerables
, потому что они не знают DataSource позади, поэтому они получают следующее: Предупреждение об обработке для возможного множественного перечисления IEnumerable
Меня интересует технический подход, как можно решить эту загадку. Единственное решение, которое я придумал до сих пор, - это использовать IReadOnlyCollection
, но это будет более явным, чем IEnumerable
.
Какова наилучшая практика для публикации таких списков, которые не должны быть изменены, но должны быть объявлены в виде списков памяти?