是否有用于“Foreach”操作的 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这样做,有is仍然是一个选项System
命名空间...如果添加反应式扩展 https://www.nuget.org/packages/Rx-Main到你的项目:
using System.Reactive.Linq;
someValues.ToObservable().Subscribe(x => list.Add(x + 1));
这与上面使用的最终结果相同ToList
,但(理论上)效率更高,因为它将值直接流式传输到委托。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)