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

Comment implémenter l'ordre de tri naturel pour les tableaux de fichiers en C #?

Susan Sarandon
Susan Sarandonoriginal
2025-02-02 16:01:11283parcourir

How to Implement Natural Sort Order for FileInfo Arrays in C#?

Le tri naturel du tableau FileInfo en C # réalisé

Question:

Comment utiliser l'interface ICOMParer en C # pour implémenter le type naturel de l'objet FileInfo?

Solution:

Afin d'atteindre le tri naturel, nous pouvons utiliser la fonction intégrée StrcmplogicalW dans l'API Windows.

implémenter:

Tout d'abord, créez une classe interne SafenatingMethods pour supprimer l'avertissement de sécurité du code non host:

Ensuite, définissez une classe NaturStringComparer pour implémenter l'interface ICOMPARER

:

<code class="language-csharp">[SuppressUnmanagedCodeSecurity]
internal static class SafeNativeMethods
{
    [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
    public static extern int StrCmpLogicalW(string psz1, string psz2);
}</code>

Enfin, créez une classe NaturFileInfonameComparer, en utilisant l'ordre d'ordre naturel pour comparer l'objet FileInfo:

<code class="language-csharp">public sealed class NaturalStringComparer : IComparer<string>
{
    public int Compare(string a, string b)
    {
        return SafeNativeMethods.StrCmpLogicalW(a, b);
    }
}</code>
Cette méthode est intégrée à la version Windows de son fonctionnement, offrant une expérience de tri familière pour votre application C #.

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:
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