我正在尝试从列表中删除重复值,但它无效。我单击按钮执行distinct函数,但最终结果和输入相同
List<Cliente> clientes = new List<Cliente>();
Cliente.cs
namespace cadastroClientes
{
public class Cliente
{
public int ID { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public bool Enviado { get; set; }
public Cliente(int id, string nome, string email, bool enviado = false)
{
ID = id;
Nome = nome;
Email = email;
Enviado = enviado;
}
public override string ToString()
{
return string.Format("{0}", Nome);
}
}
}
删除重复:
List<Cliente> distic = clientes.Distinct().ToList();
StringBuilder sb = new StringBuilder();
foreach (Cliente cliente in distic)
{
sb.AppendLine(cliente.Nome);
}
MessageBox.Show(sb.ToString());
答案 0 :(得分:1)
如果要从某些自定义数据类型的对象序列中返回不同的元素,则必须在类中实现IEquatable泛型接口。以下代码示例演示如何在自定义数据类型中实现此接口,并提供GetHashCode和Equals方法。
https://msdn.microsoft.com/en-us/library/bb348436(v=vs.110).aspx