Recherche de lignes uniques dans une table de données à l'aide de la méthode d'extension Distinct(). Certaines lignes contiennent exactement les mêmes données, mais pour une raison quelconque, le code de hachage de ces lignes est différent.Appel de Distinct() sur la collection DataRow
J'ai écrit une classe de comparaison mettant en œuvre IEqualityComparer<DataRow>
, cependant, je pense que ce que je fais dans GetHashCode()
est ringard et méchant.
La raison pour laquelle je l'ai fait de cette façon parce que Equals()
ne sera jamais appelé à moins que les hashcodes sont les mêmes (comportement attendu)
class RowValidationComparer : IEqualityComparer<DataRow>
{
public bool Equals(DataRow x, DataRow y)
{
return x.Field<string>("MyField").Equals(y.Field<string>("MyField"));
}
public int GetHashCode(DataRow obj)
{
typeof(DataRow).GetHashCode();
}
}
datatable Il paie pour vérifier l'API .NET premier –