2017-04-19 159 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