Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan perintah semulajadi untuk tatasusunan fileInfo di C#?

Bagaimana untuk melaksanakan perintah semulajadi untuk tatasusunan fileInfo di C#?

Susan Sarandon
Susan Sarandonasal
2025-02-02 16:01:11229semak imbas

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

penyortiran semula jadi array fileInfo dalam c#direalisasikan

<:> Soalan:

Bagaimana menggunakan antara muka IComparer di C#untuk melaksanakan jenis semulajadi objek FileInfo?

Penyelesaian:

Untuk mencapai penyortiran semulajadi, kita boleh menggunakan fungsi strcmplogicalw fungsi terbina dalam API Windows.

pelaksanaan:

Pertama sekali, buat kelas safenatingmethods kelas dalaman untuk menindas amaran keselamatan kod bukan rumah:

Seterusnya, tentukan kelas NaturstringComparer untuk melaksanakan antara muka IComparer

:

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

Akhirnya, buat kelas NaturfileInfonameComparer, menggunakan susunan pesanan semulajadi untuk membandingkan objek FileInfo:

<code class="language-csharp">public sealed class NaturalStringComparer : IComparer<string>
{
    public int Compare(string a, string b)
    {
        return SafeNativeMethods.StrCmpLogicalW(a, b);
    }
}</code>
Kaedah ini disepadukan dengan versi Windows yang berjalan, memberikan pengalaman menyusun yang biasa untuk aplikasi C#anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan perintah semulajadi untuk tatasusunan fileInfo di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn