关于列表上的方法链接

时间:2015-07-09 02:34:18

标签: c# list

为什么List<T>.Reverse()等方法会修改List而不是返回新的?我真的很想链接方法并编写整齐的单行程序。

在资源使用和效率方面是否有优势?对我来说像

myList = myList.Reverse().RemoveAll(...);

等。比在每条修改语句自己的行上更有意义(并且看起来更好)。

我了解myList.RemoveAll(...)myList = myList.RemoveAll(...)短,但只有单一陈述才更方便。

1 个答案:

答案 0 :(得分:0)

“为什么API以特定的方式塑造”是真正基于意见的问题。流利的API并不是普遍接受的“最好的东西”,其他方法也是完全有效的。

现在“为什么List.Reverse()没有返回copy / this”的特殊情况有充分的理由如此回答:

事实Reverse()方法没有返回值API表明该方法修改了现有列表。如果方法返回List,它会阻止对行为进行多种解释的可能性 - 通过查看List Reverse()签名,不能说方法是否返回相同的对象或以相反的顺序克隆。