C# 从列表中删除重复项

C# 从列表中删除重复项,c#,C#,我正在尝试删除重复的值​​从列表中,但它不起作用。我点击按钮执行不同的函数,但最终结果和相同的输入 List<Cliente> clientes = new List<Cliente>(); 删除重复的: List<Cliente> distic = clientes.Distinct().ToList(); StringBuilder sb = new StringBuilder(); foreach (Cliente cliente in distic)

我正在尝试删除重复的值​​从列表中,但它不起作用。我点击按钮执行不同的函数,但最终结果和相同的输入

List<Cliente> clientes = new List<Cliente>();
删除重复的:

List<Cliente> distic = clientes.Distinct().ToList();
StringBuilder sb = new StringBuilder();
foreach (Cliente cliente in distic)
{
   sb.AppendLine(cliente.Nome);
}

MessageBox.Show(sb.ToString());
如果希望从某些自定义数据类型的对象序列返回不同的元素,则必须在类中实现IEquatable泛型接口。下面的代码示例演示如何在自定义数据类型中实现此接口,并提供GetHashCode和Equals方法


您必须重写Cliente类中的Equals方法,Distinct才能工作。也许您应该在Cliente类中实现Equals方法。否则,它将通过引用来比较对象。谢谢,效果很好!
List<Cliente> distic = clientes.Distinct().ToList();
StringBuilder sb = new StringBuilder();
foreach (Cliente cliente in distic)
{
   sb.AppendLine(cliente.Nome);
}

MessageBox.Show(sb.ToString());