gpt4 book ai didi

c# - 列出特定类的重复项

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:52 25 4
gpt4 key购买 nike

我有一个列表 List<T> instances
其中 T 有一个日期变量和一个字符串 ID。现在我需要列表来删除字符串 ID 上的重复项,并且只保留最新的日期。有谁知道怎么做?

我正在考虑创建一个新列表 List<T> final并遍历实例列表。在循环中检查列表是否包含具有 ID 的项目,然后添加该项目或删除具有较低日期的重复项目。

但是我不知道如何检查 T 类变量的包含。
我必须用 lambda 表达式来做到这一点吗?还是覆盖 List 的 Equals()?实际上忘记了如何做。有什么帮助吗?

或者更好的想法总是欢迎当然!

非常感谢

最佳答案

正如蒂姆罗宾逊所建议的:

var instances = new List<Data>() {
new Data() {
Name = "Two",
Date = new DateTime(1998, 1, 1)
},
new Data() {
Name = "Two",
Date = new DateTime(1997, 1, 1)
},
new Data() {
Name = "One",
Date = new DateTime(1998, 1, 1)
},
new Data() {
Name = "One",
Date = new DateTime(1997, 1, 1)
},
new Data() {
Name = "Three",
Date = new DateTime(1998, 1, 1)
},
new Data() {
Name = "Three",
Date = new DateTime(1997, 1, 1)
}
};

var groupedMax = from i in instances
group i by i.Name into g
select new Data() {
Name = g.Key,
Date = g.Max(i => i.Date)
};
public class Data
{
public string Name { get; set; }
public DateTime Date { get; set; }
}

关于c# - 列出特定类的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1865614/

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