Heim > Backend-Entwicklung > C++ > Wie kann ich natürliche Sortierreihenfolge für FileInfo -Arrays in C#implementieren?

Wie kann ich natürliche Sortierreihenfolge für FileInfo -Arrays in C#implementieren?

Susan Sarandon
Freigeben: 2025-02-02 16:01:11
Original
282 Leute haben es durchsucht

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

Die natürliche Sortierung des FileInfo -Arrays in C#realisiert

<:> Frage:

Wie verwenden Sie die Icparer -Schnittstelle in C#, um die natürliche Art des FileInfo -Objekts zu implementieren?

Lösung:

Um eine natürliche Sortierung zu erzielen, können wir die gebaute Funktion StrcmPlogicalW in der Windows -API verwenden.

implementieren:

Erstellen Sie zunächst eine interne Klasse, um die Sicherheitswarnung der Nicht -Host -Code zu unterdrücken:

Definieren Sie als nächstes eine naturstringComparer -Klasse, um die IComparer

Schnittstelle zu implementieren:

[SuppressUnmanagedCodeSecurity]
internal static class SafeNativeMethods
{
    [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
    public static extern int StrCmpLogicalW(string psz1, string psz2);
}
Nach dem Login kopieren

Erstellen Sie schließlich eine NaturfileInfonamecomParer -Klasse unter Verwendung der natürlichen Reihenfolge, um das FileInfo -Objekt zu vergleichen:

public sealed class NaturalStringComparer : IComparer<string>
{
    public int Compare(string a, string b)
    {
        return SafeNativeMethods.StrCmpLogicalW(a, b);
    }
}
Nach dem Login kopieren
Diese Methode ist in die Windows -Version des Auslaufs integriert und bietet eine vertraute Sortiererfahrung für Ihre C#-Anwendung.

Das obige ist der detaillierte Inhalt vonWie kann ich natürliche Sortierreihenfolge für FileInfo -Arrays in C#implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage