2010-09-30 64 views
15

閱讀有關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中?我錯過了嗎?它在哪裏? 謝謝。

+1

更新2015年:.NET 4.5現在有ImmutableList https://msdn.microsoft.com/en-us/library/dn467185(v=vs.111).aspx – 2015-05-11 10:55:12

回答

相關問題