阅读有关在 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
?我错过了吗?它在哪里?谢谢你。