Joh*_*ohn 4 c# data-structures
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");
Run Code Online (Sandbox Code Playgroud)
我为什么要使用ReadOnlyCollection如下:
var readOnlyDinosaurs = new ReadOnlyCollection<string>(dinosaurs);
Run Code Online (Sandbox Code Playgroud)
代替:
dinosaurs.AsReadOnly();
Run Code Online (Sandbox Code Playgroud)将List设置为ReadOnlyCollection或AsReadOnly的真正优势是什么?
一般来说,它们是相同的,正如欧文所提到的那样.有一个重要的案例,他们有所不同.因为该AsReadOnly方法是通用的,所以新创建的类型ReadOnlyCollection是不受欢迎的,没有具体列出.通常这只会为您节省一些打字,但在匿名类型的情况下,它确实很重要.如果您有一个需要使用的匿名对象列表AsReadOnly,而不是new ReadOnlyCollection<ATypeThatHasNoName>.
如果你看一下AsReadOnly()的代码没有区别:
public ReadOnlyCollection<T> AsReadOnly()
{
return new ReadOnlyCollection<T>(this);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |