我有以下使用foreach迭代器的代码。
foreach (var item in daysOfWeeksList)
{
daysOper |= item;
}
daysOfWeeksList是一个列表。我想OR列表中的每个项目并处理结果?
这一天,我的周刊是一个
List<int> daysOfWeeksList
说我想做这样的事情。我想做的事情是OR操作。
list.ForEach( item =>
{
item.DoSomething();
} );
如何使用作为List集合的一部分提供的foreach方法来解决这个问题?对于2个操作数,我有很多例子,但不是单个操作数。
答案 0 :(得分:11)
假设daysOper
从0开始,我根本不会使用ForEach
- 我会使用来自LINQ的Aggregate
:
var daysOper = daysOfWeekList.Aggregate((current, next) => current | next);
换句话说,保持一个正在运行的“当前”值,并每次将其与下一个值进行或运算。 (一次迭代的结果将用作下一次迭代的“当前”值。)
答案 1 :(得分:3)
一般情况下,您希望使用Aggregate method这样的内容,标准的aggragetors(如Sum)不适合。
(编辑:我认为OP正在对List执行OR操作。所以我编辑了以下段落) 但是,如果DaysOfWeekList是List,则可以通过在第一个“true”实例处停止来优化性能。 Any方法执行此操作。
var result = daysOfWeekList.Any(daysOpr=>daysOpr);