Maison > développement back-end > C++ > Comment puis-je implémenter l'ordre de tri naturel pour les noms de fichiers en C #?

Comment puis-je implémenter l'ordre de tri naturel pour les noms de fichiers en C #?

Barbara Streisand
Libérer: 2025-02-02 16:21:10
original
495 Les gens l'ont consulté

How Can I Implement Natural Sort Order for File Names in C#?

c # réalisez le tri naturel

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

dllimport

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);
Copier après la connexion
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

Pour utiliser ce comparateur personnalisé, vous pouvez trier le tableau
public sealed class NaturalFileInfoNameComparer : IComparer<FileInfo>
{
    public int Compare(FileInfo x, FileInfo y)
    {
        return StrCmpLogicalW(x.Name, y.Name);
    }
}
Copier après la connexion
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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal