<:> 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:
[SuppressUnmanagedCodeSecurity] internal static class SafeNativeMethods { [DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] public static extern int StrCmpLogicalW(string psz1, string psz2); }
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); } }
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!