【问题标题】:Unmodifiable lists in C#C# 中不可修改的列表
【发布时间】:2010-12-15 05:13:28
【问题描述】:

在 Java 中,可以使用 Collections#unmodifiableList() 方法从现有的 List 对象创建一个不可修改的列表。 C# 中是否有任何对应物?我是该语言的新手,在 MSDN 文档中找不到类似的内容。

【问题讨论】:

标签: c# .net collections c#-4.0 unmodifiable


【解决方案1】:

ReadOnlyCollection

var dinosaurs = new List<string>();

dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");

var readOnlyDinosaurs = new ReadOnlyCollection<string>(dinosaurs);

【讨论】:

  • 正是我想要的,谢谢。我想我还没有习惯如何搜索 MSDN 网站。
  • 对 MSDN 的最佳搜索是 google :) 但我知道它叫做 ReadOnlyCollection,如果您正在搜索不可修改的列表,您可能会得到较少的结果。
  • 最后一行可以是var readonlyDinosaurs = dinosaurs.AsReadOnly()
  • 请注意,这实际上并没有使集合本身成为只读的。相反,它为您提供了一个围绕可变集合的只读包装器;尝试改变包装器会抛出异常,但任何可以获取原始集合引用的人仍然可以改变它。
猜你喜欢
  • 2011-04-20
  • 2013-04-27
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多