Lese über das Problem eine Lese nur primitiven Vektor in C# zu schaffen (im Grunde können Sie nicht tun),Warum gibt es keine Klasse ReadOnlyList <T> in der Bibliothek System.Collections von C#?
public readonly int[] Vector = new int[]{ 1, 2, 3, 4, 5 }; // You can still changes values
Ich lernte über ReadOnlyListBase. Dies ist eine Basisklasse für Container mit Objekten, auf die ihre Positionen zugreifen, aber nicht geändert werden können. Sogar gibt es ein Beispiel in der Microsoft msdn.
http://msdn.microsoft.com/en-us/library/system.collections.readonlycollectionbase.aspx
ich leicht modifiziert das Beispiel in Msdn jede Art zu verwenden:
public class ReadOnlyList<T> : ReadOnlyCollectionBase {
public ReadOnlyList(IList sourceList) {
InnerList.AddRange(sourceList);
}
public T this[int index] {
get {
return((T) InnerList[ index ]);
}
}
public int IndexOf(T value) {
return(InnerList.IndexOf(value));
}
public bool Contains(T value) {
return(InnerList.Contains(value));
}
}
... und es funktioniert. Meine Frage ist, warum existiert diese Klasse nicht in der Standardbibliothek von C#, wahrscheinlich in System.Collections.Generic? Vermisse ich es? Wo ist es? Danke.
Update 2015: .NET 4.5 hat jetzt ImmutableList https://msdn.microsoft.com/en-us/library/dn467185(v=vs.111).aspx –