Heim >Backend-Entwicklung >C++ >Wie kann ich natürliche Sortierreihenfolge für Dateinamen in C#implementieren?
c# natürliche Sortierung
realisieren Wenn der Dateiname in C#sortiert wird, ist es normalerweise erforderlich, natürliche Sortieralgorithmen anstelle der Standard -Wörterbuchsortierung zu verwenden. Dies kann sicherstellen, dass die Nummer numerisch sortiert ist und die Anzahl der Buchstaben in angemessener Reihenfolge sortiert ist.
Eine Möglichkeit, natürliches Sortieren zu erreichen, besteht darin, die erstellte Windows -Funktion
zu verwenden. Mit dieser Funktion können Sie die logische Reihenfolge der Zeichenfolge (einschließlich der Anzahl der Zahlen als Wert) und die sortierte Zeichenfolge vergleichen.
StrCmpLogicalW
StrCmpLogicalW
Sie können verwenden, um auf auf die Funktion zuzugreifen:
DllImport
Verwenden Sie die Implementierung von Icomparer StrCmpLogicalW
<code class="language-csharp">[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] private static extern int StrCmpLogicalW(string psz1, string psz2);</code>Um diese Funktion in Ihre
-Array -Sortierung zu integrieren, können Sie eine benutzerdefinierte -Klasses implementieren, wie unten gezeigt:
Beispiel verwendet FileInfo
IComparer
<code class="language-csharp">public sealed class NaturalFileInfoNameComparer : IComparer<FileInfo> { public int Compare(FileInfo x, FileInfo y) { return StrCmpLogicalW(x.Name, y.Name); } }</code>-Array wie folgt sortieren:
Dies sortiert die
-Arrays nach der natürlichen Reihenfolge des Dateinamens (gleichzeitig unter Berücksichtigung der Nummer und der Buchstabensequenz des Briefes).Das obige ist der detaillierte Inhalt vonWie kann ich natürliche Sortierreihenfolge für Dateinamen in C#implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!