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
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] private static extern int StrCmpLogicalW(string psz1, string psz2);
, vous pouvez implémenter une classe personnalisée, comme indiqué ci-dessous:
<示> Exemple d'utilisation FileInfo
IComparer
public sealed class NaturalFileInfoNameComparer : IComparer<FileInfo> { public int Compare(FileInfo x, FileInfo y) { return StrCmpLogicalW(x.Name, y.Name); } }
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!