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



我试图使用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();

相关内容

  • 没有找到相关文章