繁体   English   中英

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

[英]Remove items from a collection if one date is greater than another

我正在尝试使用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保持不变。 如果clLibrary的类型为List<T> ,则可以:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM