Heim >Backend-Entwicklung >C++ >Wie kann ich natürliche Sortierreihenfolge für FileInfo -Arrays in C#implementieren?
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 IComparerSchnittstelle 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!