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
Susan SarandonOriginal
2025-02-02 16:01:11229Durchsuche

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:

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

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

<code class="language-csharp">public sealed class NaturalStringComparer : IComparer<string>
{
    public int Compare(string a, string b)
    {
        return SafeNativeMethods.StrCmpLogicalW(a, b);
    }
}</code>
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!

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