我正在尝试使用linq从一个日期大于另一个日期的集合中删除项目。我知道我需要使用DateTime.Compare()
,但我有点不确定如何去做。
如果允许,我的代码将如下所示:
ciLibrary.RemoveAll(x => x.LastSyncToWebsite >= x.Modified);
由于这不适用于DATETIME
值,如何正确表示此语句?
答案 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();