Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Kamus 1-ke-1 Dwi Arah dalam C#?

Bagaimana untuk Melaksanakan Kamus 1-ke-1 Dwi Arah dalam C#?

DDD
DDDasal
2025-01-08 11:07:40785semak imbas

How to Implement a Bidirectional 1-to-1 Dictionary in C#?

Mencipta Kamus Dwi Arah 1:1 dalam C#

Artikel ini menangani cabaran untuk mencipta kamus dua hala, satu dengan satu dalam C#. Keperluan ialah kamus di mana setiap kunci mempunyai nilai yang unik, dan begitu juga sebaliknya, membenarkan carian daripada kedua-dua kunci dan nilai.

Penyelesaian: Pelaksanaan DwiKamus Tersuai

Daripada bergantung pada kamus C# standard, kelas BiDictionaryOneToOne<TFirst, TSecond> tersuai ialah penyelesaian yang paling berkesan. Kelas ini menggunakan dua kamus dalaman: satu pemetaan TFirst ke TSecond dan satu lagi pemetaan TSecond ke TFirst. Pemetaan dwi ini memastikan keunikan dan akses dua arah.

Kelas BiDictionaryOneToOne termasuk beberapa kaedah untuk pengurusan data yang cekap:

  • Kaedah Selamat (dengan Pengecualian): Add, GetByFirst, GetBySecond, RemoveByFirst dan RemoveBySecond buang pengecualian jika kunci atau nilai yang ditentukan tidak ditemui. Ini memberikan pengendalian ralat yang jelas.
  • Kaedah Cuba (tanpa Pengecualian): TryAdd, TryGetByFirst, TryGetBySecond, TryRemoveByFirst dan TryRemoveBySecond kembali true apabila berjaya dan false sebaliknya, mengelakkan pengecualian untuk pengendalian ralat yang lebih fleksibel.
  • Kaedah Utiliti: Count mengembalikan bilangan pasangan nilai kunci dan Clear mengalih keluar semua entri.

Kelas BiDictionaryOneToOne tersuai ini menyediakan penyelesaian yang mantap dan cekap untuk mengurus perhubungan 1:1 dua arah dalam C#. Pengendalian ralat yang jelas dan kefungsian komprehensif menjadikannya sesuai untuk pelbagai senario pengurusan data yang memerlukan gandingan nilai kunci yang unik dengan keupayaan carian yang cekap dari kedua-dua belah pihak.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kamus 1-ke-1 Dwi Arah dalam 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