Как уже говорили другие, вы ищете метод расширения .AsReadOnly()
.
Однако вы должны хранить ссылку на коллекцию, а не создавать ее при каждом доступе к свойству:
private readonly List<SomeOtherClass> _items;
public WhatClass()
{
_items = new List<SomeOtherClass>();
this.Items = _items.AsReadOnly();
}
public ReadOnlyCollection<SomeOtherClass> Items { get; private set; }
Это сделано для того, чтобы x.Items == x.Items
выполнялось, что в противном случае могло бы быть очень неожиданным для потребителей API.
Предоставление ReadOnlyCollection<>
сообщает потребителям о вашем намерении создать коллекцию только для чтения.Изменения в _items
будут отражены в Items
.