gpt4 book ai didi

c# - 查找重复项目,然后选择日期最接近 currentDate 的项目

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:44 24 4
gpt4 key购买 nike

注意:使用 Windows Mobile 6.5 Compact Framework。

我有以下对象的集合。

public class RFileModel
{
public List<string> RequiredFilesForR = new List<string>();
public string Date { get; set; }
public string RouteId { get; set; }
}

var ListOfRFileModels = new List<RFileModel>();

相同的 RouteId 可能会出现在 RFileModel 的多个实例中,但具有不同的 Date

我正在尝试识别重复项并只选择一个,最接近当前日期的一个。

到目前为止,我有以下 LINQ:

var query =  ListOfRFileModels.GroupBy(route => route.RouteId)
.OrderBy(newGroup => newGroup.Key)
.Select(newGroup => newGroup).ToList();

但我认为这不是我需要的,因为它仍然会返回所有元素。我期待一个非唯一 RouteId 列表,这样我就可以迭代每个非唯一 ID 并比较日期以查看保留哪个。

我如何使用 LINQ 或仅使用普通的 ole foreach 来完成此操作?

最佳答案

您的表达式对组进行排序,而不是对组元素进行排序。以下是修复方法:

DateTime currentDate = ...
var query = ListOfRFileModels
.GroupBy(route => route.RouteId)
.Select(g => g.OrderBy(fm => currentDate-fm.Date).First())
.ToList();

currentDate-fm.Date 表达式产生当前日期和 RFileModel 对象的日期之间的差异。差异最小的对象将排在有序序列的第一个位置。调用 First() 从组中选取它以产生最终结果。

关于c# - 查找重复项目,然后选择日期最接近 currentDate 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com