c# - 如果输入已经是列表,ToList 不会快捷方式

标签 c# linq

ToReadOnlyCollection扩展方法使用快捷语句实现,如果它已经是 ReadOnlyCollection 的实例,则直接返回输入。 ToList扩展方法不是。

纯粹出于好奇,这是否有特殊原因,或者只是碰巧没有实现。我明白为什么保证 ToList 总是返回一个新实例可能很有用,但我很想知道是否还有其他原因。

最佳答案

只读集合无法修改,因此返回与 .ToReadOnlyCollection() 相同的实例是完全可以接受的。

如果 .ToList() 操作的结果有时返回一个新列表,有时不返回,您将不知道在更改输出列表时是否正在修改源列表。因此,出于这个原因,.ToList() 总是返回一个新实例。

关于c# - 如果输入已经是列表,ToList 不会快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28672920/

相关文章:

c# - ASP.NET MVC 5、IIS Express 8 - 未达到索引

c# - 忽略复杂类型的一个属性

c# - 您如何测试是否已创建对象的新实例?

c# - 从 XBRL 文档中获取特定值

linq - 无效的列名实体猜测不存在的外键

c# - Linq - 中断存储过程的执行

C#/.NET 字符串魔术从文本文件输入中删除注释行?

c# - ASP.NET: "Default Membership Provider could not be found"错误

vb.net - Linq 到 Sql : Multiple left outer joins

c# - LINQ Except/Distinct仅基于少数列,不添加重复项