我需要使用IReadOnlyList< T>作为返回参数,因为它最符合我的需求,但是如下面的示例所示,如果它不是真正的只读列表,则仍可以修改它包装的列表. using System.Collections.Generic; using System.Collections.Immutable; public class Test { public Test() { //
我正在尝试使用ReadOnlyCollection使对象不可变,我希望对象的属性是不可变的. public ReadOnlyCollection<FooObject> MyReadOnlyList { get { return new ReadOnlyCollection<FooObject>(_myDataList); } } 但我有点困惑. 我试图使用foreach将对象的属性更
我对数据结构只有两个要求: >是只读的, >保留订单(我想按特定顺序枚举它,始终). 我知道IReadOnlyList确实保留了顺序.我可以使用它,但我不需要索引.这意味着我应该使用IReadOnlyCollection.不幸的是,我找不到它保留订单的信息. 你知道吗?解决方法:如果有一个只读列表,您可以遵循不同
我有一个收集成员的班级.我想防止外部代码直接修改此集合,而是使用方法(可以执行适当的验证等). 这比我想象的要难.这是我正在使用的解决方案.你能否告诉我是否有更好的方法来做这个常见的事情?这一切似乎都有点过分了. using System.Collections.Generic; using System.Collection