J'essaie de comparer deux grands ensembles de données à partir d'une requête SQL. À l'heure actuelle, la requête SQL est effectuée en externe et les résultats de chaque ensemble de données sont enregistrés dans son propre fichier csv. Ma petite application console C# charge les deux fichiers texte/csv et les compare pour les différences et enregistre les différences dans un fichier texte.C# Type de données pour une grande collection triée avec position?
C'est une application très simple qui charge simplement toutes les données du premier fichier dans un arraylist et fait un .compare() sur l'arraylist comme chaque ligne est lue à partir du deuxième fichier csv. Ensuite, enregistre les enregistrements qui ne correspondent pas.
L'application fonctionne mais je voudrais améliorer les performances. Je pense que je peux grandement améliorer les performances si je peux profiter du fait que les deux fichiers sont triés, mais je ne connais pas de type de données en C# qui conserve l'ordre et me permettrait de sélectionner une position spécifique. Theres un tableau de base, mais je ne sais pas combien d'éléments vont être dans chaque liste. Je pourrais avoir plus d'un million de dossiers. Y a-t-il un type de données disponible que je devrais regarder?
Juste pour clarifier voulez-vous créer un fichier contenant toutes les lignes qui sont dans le deuxième fichier, mais pas dans le premier? –
Peut-être un petit exemple des deux fichiers d'entrée et le résultat attendu aiderait à clarifier? –