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

本文关键字:日期 集合 删除 大于 如果 一个 另一个 | 更新日期: 2023-09-27 18:03:37

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

如果允许的话,我的代码看起来像这样:

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

既然这对DATETIME值不起作用,我如何正确地表示这个语句?

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

DateTime值可与>=值进行比较。你需要的是一个Where:

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

或等价:

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

生成一个新的IEnumerable,保持clLibrary不变。如果clLibraryList<T>类型,则可以:

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

如果clLibraryT[]类型,则可以:

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