Я думаю, что вы смешиваете понятия.
public List<string> myList {get; private set;}
является уже «только для чтения». То есть за пределами этого класса ничто не может установить myList
для другого экземпляра List<string>
Однако, если вам нужен список только для чтения, например, «Я не хочу, чтобы люди могли изменять список содержимое », то вам необходимо предоставить ReadOnlyCollection<string>
. Вы можете сделать это через:
private List<string> actualList = new List<string>();
public ReadOnlyCollection<string> myList
{
get{ return actualList.AsReadOnly();}
}
Обратите внимание, что в первом фрагменте кода другие могут манипулировать списком, но не могут изменить список, который у вас есть. Во втором фрагменте другие получат список только для чтения, который они не смогут изменить.