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

ric*_*lla 3 c# linq

ToReadOnlyCollection扩展方法与快捷语句直接返回输入,如果它已经ReadOnlyCollection的一个实例来实现.该ToList扩展方法未启用.

纯粹出于好奇,是否有一个特殊的原因,或者只是一些没有实施的事情.我可以看到为什么保证ToList始终返回一个新实例可能是有用的,但id有兴趣知道是否有任何其他原因.

Eni*_*ity 11

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

如果.ToList()操作的结果有时会返回一个新列表,有时则不会在更改输出列表时知道是否要修改源列表.因此,出于这个原因,.ToList()始终返回一个新实例.