“对于每个”操作是否有任何Linq样式语法?
例如,将基于一个集合的值添加到另一个已经存在的集合中:
IEnumerable<int> someValues = new List<int>() { 1, 2, 3 };
IList<int> list = new List<int>();
someValues.ForEach(x => list.Add(x + 1));
代替
foreach(int value in someValues)
{
list.Add(value + 1);
}
最好使用ToList()扩展方法:
someValues.ToList().ForEach(x => list.Add(x + 1));
BCL中没有直接实现ForEach的扩展方法。
虽然有一个在没有扩展方法BCL做这个,也就是还处于一个选项System
命名空间......如果你添加无扩展到您的项目:
using System.Reactive.Linq;
someValues.ToObservable().Subscribe(x => list.Add(x + 1));
这具有与上面使用相同的最终结果ToList
,但是(在理论上)效率更高,因为它直接将值流传输给委托。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句