J'ai un DataTable que je veux vérifier si les valeurs dans trois des colonnes sont uniques. Sinon, la dernière colonne doit être remplie avec le numéro de ligne de la première apparition de la combinaison de valeurs.Marquer des lignes non-uniques dans un DataTable
Par exemple, ce tableau:
ID Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 -
4 Ned Flanders 40 -
5 Bart Simpson 10 -
devrait conduire à ce résultat:
Line Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 1
4 Ned Flanders 40 -
5 Bart Simpson 10 1
Je résolu ce problème en itérer le DataTable avec deux boucles imbriquées for
et à comparer les valeurs. Bien que cela fonctionne correctement pour une petite quantité de données, devient très lent lorsque le DataTable contient beaucoup de lignes.
Ma question est: Quelle est la meilleure solution/la plus rapide pour ce problème, étant donné que la quantité de données peut varier entre 100 et 20000 lignes, par exemple?
Existe-t-il un moyen de faire cela en utilisant LINQ? (Je ne suis pas trop familier avec cela, mais je veux apprendre!)
Merci, c'est une bonne idée avec la sous-sélection (+1). Cependant je préférerais une solution qui ne nécessite pas de SQL. Je vais essayer de faire quelque chose comme ça dans linq. –