阅读有关在C#中创建只读原始向量的问题(基本上,您无法这样做),
public readonly int[] Vector = new int[]{ 1, 2, 3, 4, 5 }; // You can still changes values
我了解了ReadOnlyCollectionBase
。这是一个基类,用于包含对象的容器,允许访问它们的位置,但不能修改。甚至在Microsoft Docs中有一个示例。
ReadOnlyCollectionBase类 - Microsoft Docs
我稍微修改了示例以使用任何类型:
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
中吗?我有遗漏吗?它在哪里?谢谢。