.NET 4.0 中的只读列表或不可修改列表
2022-08-31 09:51:17
据我所知,.NET 4.0仍然缺少只读列表。为什么框架仍然缺少此功能?这难道不是领域驱动设计中最常见的功能之一吗?
Java相对于C#的少数优势之一是以Collegions.unmodifiablelist(list)方法的形式出现,这在IList<T>或List<T>中似乎已经过期了。
使用是问题的最简单解决方案 - 可以使用并返回副本。IEnumerable<T>
ToList
据我所知,.NET 4.0仍然缺少只读列表。为什么框架仍然缺少此功能?这难道不是领域驱动设计中最常见的功能之一吗?
Java相对于C#的少数优势之一是以Collegions.unmodifiablelist(list)方法的形式出现,这在IList<T>或List<T>中似乎已经过期了。
使用是问题的最简单解决方案 - 可以使用并返回副本。IEnumerable<T>
ToList
您正在寻找 ReadOnlyCollection
,它自 .网2.
IList<string> foo = ...;
// ...
ReadOnlyCollection<string> bar = new ReadOnlyCollection<string>(foo);
或
List<string> foo = ...;
// ...
ReadOnlyCollection<string> bar = foo.AsReadOnly();
这将创建一个只读视图,该视图反映对包装的集合所做的更改。
对于那些喜欢使用接口的人:.NET 4.5添加了通用的IReadOnlyList
接口,例如,该接口由实现。List<T>
它类似于 IReadOnlyCollection
,并添加了一个索引器属性。Item