SortVersion kelas

Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.

Pengurutan dan perbandingan string dalam .NET Framework

Melalui .NET Framework 4, setiap versi .NET Framework menyertakan tabel yang berisi bobot sortir dan data pada normalisasi string dan yang didasarkan pada versi Unicode tertentu. Dalam .NET Framework 4.5 dan versi yang lebih baru, keberadaan tabel ini tergantung pada sistem operasi:

  • Pada Windows 7 dan versi sebelumnya, tabel terus digunakan untuk membandingkan dan mengurutkan string.
  • Pada Windows 8, .NET Framework mendelegasikan perbandingan string dan operasi pemesanan ke sistem operasi.

Akibatnya, hasil perbandingan string tidak hanya dapat bergantung pada versi .NET Framework, tetapi juga pada versi sistem operasi, seperti yang ditunjukkan tabel berikut. Perhatikan bahwa daftar versi Unicode yang didukung ini hanya berlaku untuk perbandingan karakter dan pengurutan; tidak berlaku untuk klasifikasi karakter Unicode menurut kategori.

Versi .NET Framework Sistem operasi Versi Unicode
4 Semua sistem operasi Unicode 5.0
4.5 dan versi yang lebih baru Windows 7 Unicode 5.0
4.5 dan versi yang lebih baru Windows 8 dan versi yang lebih baru Unicode 6.0

Pada Windows 8, karena versi Unicode yang digunakan dalam perbandingan string dan pemesanan tergantung pada versi sistem operasi, hasil perbandingan string mungkin berbeda bahkan untuk aplikasi yang berjalan pada versi .NET Framework tertentu.

Pengurutan dan perbandingan string di .NET Core

Semua versi .NET (Core) mengandalkan sistem operasi yang mendasarinya saat melakukan perbandingan string. Oleh karena itu, hasil perbandingan string atau urutan di mana string diurutkan tergantung pada versi Unicode yang digunakan oleh sistem operasi saat melakukan perbandingan. Di Linux, macOS, dan Windows 10 dan versi yang lebih baru, Komponen Internasional untuk pustaka Unicode menyediakan implementasi untuk perbandingan dan pengurutan API.

Menggunakan kelas SortVersion

Kelas ini SortVersion menyediakan informasi tentang versi Unicode yang digunakan oleh .NET untuk perbandingan dan pengurutan string. Ini memungkinkan pengembang untuk menulis aplikasi yang dapat mendeteksi dan berhasil menangani perubahan dalam versi Unicode yang digunakan untuk membandingkan dan mengurutkan string aplikasi.

Anda dapat membuat instans objek dengan SortVersion dua cara:

  • Dengan memanggil SortVersion konstruktor, yang membuat instans objek baru SortVersion berdasarkan nomor versi dan ID pengurutan. Konstruktor ini paling berguna saat membuat ulang objek dari data yang SortVersion disimpan.
  • Dengan mengambil nilai CompareInfo.Version properti . Properti ini menyediakan informasi tentang versi Unicode yang digunakan oleh implementasi .NET tempat aplikasi berjalan.

Kelas SortVersion ini memiliki dua properti, FullVersion dan SortId, yang menunjukkan versi Unicode dan budaya spesifik yang digunakan untuk perbandingan string. Properti FullVersion adalah nilai numerik arbitrer yang mencerminkan versi Unicode yang digunakan untuk perbandingan string, dan SortId properti adalah arbitrer Guid yang mencerminkan budaya yang konvensinya digunakan untuk perbandingan string. Nilai kedua properti ini hanya penting ketika Anda membandingkan dua SortVersion objek dengan menggunakan Equals metode , Equality operator , atau Inequality operator .

Anda biasanya menggunakan SortVersion objek saat menyimpan atau mengambil beberapa bentuk data string yang sensitif terhadap budaya dan diurutkan, seperti indeks atau string harfiah itu sendiri. Proses ini memerlukan langkah-langkah berikut:

  1. Saat data string yang diurutkan disimpan, FullVersion nilai properti dan SortId juga disimpan.

  2. Saat data string yang diurutkan diambil, Anda dapat membuat ulang objek yang SortVersion digunakan untuk mengurutkan string dengan memanggil SortVersion konstruktor.

  3. Objek yang baru dibuat SortVersion ini dibandingkan dengan SortVersion objek yang mencerminkan budaya yang konvensinya digunakan untuk memesan data string.

  4. Jika dua SortVersion objek tidak sama, data string harus diurutkan ulang.