C#中的不可修改列表

Ale*_*all 4 .net c# collections unmodifiable c#-4.0

在Java中,可以使用Collections#unmodifiableList()方法从现有List对象创建不可修改的列表.C#中有没有对应的?我是该语言的新手,并且在MSDN文档中找不到这样的内容.

Bob*_*Bob 16

ReadOnlyCollection

var dinosaurs = new List<string>();

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

var readOnlyDinosaurs = new ReadOnlyCollection<string>(dinosaurs);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这实际上并不会使集合本身成为只读.相反,它为您提供了一个围绕可变集合的只读包装器; 尝试改变包装器将抛出异常,但任何能够获得对原始集合的引用的人仍然可以改变它. (7认同)
  • 最后一行可以是`var readonlyDinosaurs = dinosaurs.AsReadOnly()` (6认同)
  • MSDN的最佳搜索是谷歌:)但我知道它被称为ReadOnlyCollection,如果你正在搜索不可修改的列表,你可能会有较少的结果. (3认同)