Possible Duplicate:
List<T> readonly with a private set
I have a class as:
public SomeClass{
public List<Status> log { get; private set; }
public enum Status
{
waitingForConnection,
connected,
receivingFile,
doneReceivingFile
}
// later I initialize log and populate it...
///
}
so far it is easy to tell that I am just able to set a new log list from withing the class. How can I prevent users from editing items on the list. In other words I don’t want users to be able to do something as:
SomeClass someClass = new SomeClass();
//....
someClass.log[3] = \\different value
if I make the list log private then I will achieve this but I want to enable users to see the content of the log list but not to be able to edit items.
also I don’t want to make the public enum Status private so that the user can see the status…
so how can I restrict users from editing the items from the list?
Use ReadOnlyCollection for this. Also on another note, remember that the readonly keyword does not truly make collections read only.