C#foreach通过跳过一些值
问题描述:
我在List<model>
&日期我正在做一个foreach
与日期属性。这些日期是一个月的日期。C#foreach通过跳过一些值
foreach (var item in emps.OrderBy(m => m.a.Entry_Date).ToList())
{
.....
}
现在,我的要求是,我还有一个List<OT>
包含同月一些日期。
我想foreach
在该日期在List<OT>
被重复第一&休息日期由订单迭代By子句这样的方式进行迭代。
这里有什么简单的方法?
答
您必须将源集合分成两个部分,应用顺序,然后CONCAT都连成一个集再次:
List<DateTime> datelist = ...
var firstpart = emps.Where(m => datelist.Contains(m.a.Entry_Date)).ToList();
var secondpart = emps.Except(firstpart).OrderBy(m => m.a.Entry_Date);
var collection = firstpart.Concat(secondpart);
foreach (var item in collection)
{
....
}
'.ToList()'是*多余*上下文:'foreach'将在IEnumerable上执行' –
用于每个语句并执行它 –
@DmitryBychenko它取决于需求。如果你想修改foreach循环中的emps集合,那么你必须使用ToList()。除非我们看到循环中的整个代码,否则我们无法确定它是否是多余的 –