2017-04-19 108 views
-1

我在List<model> &日期我正在做一个foreach与日期属性。这些日期是一个月的日期。C#foreach通过跳过一些值

foreach (var item in emps.OrderBy(m => m.a.Entry_Date).ToList()) 
{ 
..... 
} 

现在,我的要求是,我还有一个List<OT>包含同月一些日期。

我想foreach在该日期在List<OT>被重复第一&休息日期由订单迭代By子句这样的方式进行迭代。

这里有什么简单的方法?

+2

'.ToList()'是*多余*上下文:'foreach'将在IEnumerable上执行' –

+0

用于每个语句并执行它 –

+2

@DmitryBychenko它取决于需求。如果你想修改foreach循环中的emps集合,那么你必须使用ToList()。除非我们看到循环中的整个代码,否则我们无法确定它是否是多余的 –

回答

1

您必须将源集合分成两个部分,应用顺序,然后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) 
{ 
    .... 
} 

.Net Fiddle Sample