Sort sur Arraylist longue durée
Bonjour à tous.
Je récupère les fichiers d'un dossier.
Malheureusement le fait qu'ils soient donnés par ordre alphabétique n'est pas garanti.
J'ai donc décidé d'utiliser un sort sur une arraylist, mais le problème c'est que pour environ 1000 lignes le Sort prend 1 minute 30 secondes.
Code:
1 2
| IComparer aComp = new FileComparer();
monArray.Sort(aComp); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class FileComparer : IComparer
{
public int Compare(object x, object y)
{
try
{
FileInfo aFirstFile = new FileInfo((string)x);
FileInfo aSecondFile = new FileInfo((string)y);
string aFirstString = aFirstFile.Name.Replace(aFirstFile.Extension, "");
string aSecondString = aSecondFile.Name.Replace(aSecondFile.Extension, "");
int aFirstInt = Convert.ToInt32(aFirstString);
int aSecondInt = Convert.ToInt32(aSecondString);
if (aFirstInt == aSecondInt)
{
return 0;
}
else if (aFirstInt > aSecondInt)
{
return 1;
}
else
{
return -1;
}
}
catch
{ return 0; }
}
} |
Il y aurait il une erreur dans mon code?
Merci.