閱讀有關C#(基本上,你不能這樣做)創建一個只讀基本向量的問題,爲什麼C#的System.Collections庫中沒有ReadOnlyList <T>類?
public readonly int[] Vector = new int[]{ 1, 2, 3, 4, 5 }; // You can still changes values
我瞭解ReadOnlyListBase。這是一個容器對象的基類,可以訪問它們的位置但不能修改它們。即使在微軟msdn的中也有一個例子。
http://msdn.microsoft.com/en-us/library/system.collections.readonlycollectionbase.aspx
我稍微修改了例子MSDN使用任何類型:
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));
}
}
...和它的作品。我的問題是,爲什麼在C#的標準庫中不存在這個類,可能在System.Collections.Generic中?我錯過了嗎?它在哪裏? 謝謝。
更新2015年:.NET 4.5現在有ImmutableList https://msdn.microsoft.com/en-us/library/dn467185(v=vs.111).aspx – 2015-05-11 10:55:12