C#foreach Order跳过一些值

时间:2017-04-19 08:54:19

标签: c# asp.net-mvc

我的日期为List<model>&amp;我正在使用日期属性进行foreach。这些日期是一个月的日期。

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

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

我希望foreach以这样的方式进行迭代:List<OT>中的日期首先被迭代&amp;休息日期由Order By子句迭代。

这里有什么简单的方法?

1 个答案:

答案 0 :(得分:1)

您必须将源集合拆分为两部分,应用订单然后再将它们连接成一个集合:

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