如果一个日期大于另一个日期,则从集合中删除项目

时间:2015-07-21 03:22:28

标签: c# linq datetime

我正在尝试使用linq从一个日期大于另一个日期的集合中删除项目。我知道我需要使用DateTime.Compare(),但我有点不确定如何去做。

如果允许,我的代码将如下所示:

ciLibrary.RemoveAll(x => x.LastSyncToWebsite >= x.Modified);

由于这不适用于DATETIME值,如何正确表示此语句?

1 个答案:

答案 0 :(得分:2)

可以使用DateTime比较

>=个值。您需要的是Where

clLibrary.Where(x => !(x.LastSyncToWebsite >= x.Modified))

或等效地:

clLibrary.Where(x => x.LastSyncToWebsite < x.Modified)

这将生成一个新的IEnumerable,保持clLibrary不变。如果clLibrary的类型为List<T>,您可以:

clLibrary = clLibrary.Where(x => x.LastSyncToWebsite < x.Modified).ToList();

如果clLibrary的类型为T[],您可以:

clLibrary = clLibrary.Where(x => x.LastSyncToWebsite < x.Modified).ToArray();