gpt4 book ai didi

c# - 检查列表中是否已存在相同的对象

转载 作者:行者123 更新时间:2023-11-30 19:04:08 28 4
gpt4 key购买 nike

故事是这样的:

我正在尝试列出不同的集群...我只想拥有必要的集群...而且集群可以相同。

如何通过检查列表是否包含对象(我知道不能在此处传递对象)将其添加到列表中

这是我的示例报价:

foreach (Cluster cluster in clustersByProgramme)
{
if (!clusterList.Contains(cluster))
{
clusterList.Add(cluster);
}
}

最佳答案

您的代码应该可以工作;如果没有,您可能正在使用代表相同实际集群的不同对象实例,并且您可能没有提供合适的Equals 实现(您还应该更新GetHashCode 同时进行)。

此外 - 在 .NET 3.5 中,这可能很简单:

var clusterList = clustersByProgramme.Distinct().ToList();

作为支持相等性测试的类的例子:

class Cluster // possibly also IEquatable<Cluster>
{
public string Name { get { return name; } }
private readonly string name;
public Cluster(string name) { this.name = name ?? ""; }
public override string ToString() { return Name; }
public override int GetHashCode() { return Name.GetHashCode(); }
public override bool Equals(object obj)
{
Cluster other = obj as Cluster;
return obj == null ? false : this.Name == other.Name;
}
}

关于c# - 检查列表中是否已存在相同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254420/

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