C#中的用法list.ForEach

时间:2016-07-17 21:21:28

标签: c# list collections foreach lambda

让我们:

List<double> inputs,outputs;

这有什么区别:

inputs.Clear();
outputs.ForEach(inputs.Add);

和此:

inputs.Clear();  
outputs.ForEach(x => inputs.Add(x));

1)我假设两个选项首先清除输入列表,然后取输出列表中的所有值并将它们放入输入列表中。
2)两个选项看起来都是等价的。我对吗?它们之间有什么区别吗?

1 个答案:

答案 0 :(得分:2)

不,没有区别。它们很可能被编译为相同的IL代码。

但是,在我看来,这个表格

inputs.Clear();  
outputs.ForEach(x => inputs.Add(x));

更清楚地显示您的意图。我可能会完全避免这种情况,只需使用foreach循环将每个元素添加到inputs。但它最终取决于您的个人偏好。