Maison >développement back-end >C++ >Comment puis-je implémenter l'ordre de tri naturel pour les noms de fichiers en C #?
Lors du tri du nom de fichier en C #, il est généralement nécessaire d'utiliser des algorithmes de tri naturels au lieu du tri par défaut du dictionnaire. Cela peut garantir que le nombre est trié en numérique et que le nombre de lettres est trié dans un ordre approprié.
Une façon d'atteindre le tri naturel est d'utiliser la fonction Windows intégrée
. Cette fonction permet de comparer l'ordre logique de la chaîne (y compris le nombre de nombres en tant que valeur) et la chaîne triée.
StrCmpLogicalW
StrCmpLogicalW
Vous pouvez utiliser pour accéder à Fonction:
DllImport
Utilisez l'implémentation d'IComparer StrCmpLogicalW
<code class="language-csharp">[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] private static extern int StrCmpLogicalW(string psz1, string psz2);</code>Afin d'intégrer cette fonction dans votre tri de tableau
, vous pouvez implémenter une classe personnalisée, comme indiqué ci-dessous:
Exemple d'utilisation FileInfo
IComparer
<code class="language-csharp">public sealed class NaturalFileInfoNameComparer : IComparer<FileInfo> { public int Compare(FileInfo x, FileInfo y) { return StrCmpLogicalW(x.Name, y.Name); } }</code>comme suit:
Cela triera les tableaux
en fonction de l'ordre naturel du nom du fichier (en même temps en considérant la séquence de numéro et de lettre de la lettre).Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!