Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Berbilang Kunci yang Dikaitkan dengan Nilai Tunggal dalam Kamus Generik?

Bagaimanakah Saya Boleh Mendapatkan Berbilang Kunci yang Dikaitkan dengan Nilai Tunggal dalam Kamus Generik?

Mary-Kate Olsen
Lepaskan: 2025-01-21 03:42:10
asal
710 orang telah melayarinya

How Can I Retrieve Multiple Keys Associated with a Single Value in a Generic Dictionary?

Dapatkan berbilang kunci untuk nilai tertentu daripada kamus generik

Mendapatkan semula nilai berdasarkan kunci yang diberikan daripada kamus generik .NET adalah sangat mudah menggunakan sintaks pengindeks. Walau bagaimanapun, memandangkan mungkin terdapat berbilang kunci dengan nilai yang sama, mendapatkan semula kunci yang sepadan dengan nilai yang ditentukan mungkin lebih mencabar.

Pengenalan kepada struktur data DwiKamus

Untuk menyelesaikan masalah ini, struktur data BiDictionary telah dibangunkan, membenarkan pemetaan dua arah antara kunci dan nilai. Ia mengekalkan dua kamus dalaman:

  • firstToSecond: Senarai yang memetakan kekunci jenis pertama kepada nilai jenis kedua.
  • secondToFirst: Senarai yang memetakan nilai jenis kedua kepada kekunci jenis pertama.

Butiran pelaksanaan

Kelas BiDictionary menyediakan kaedah untuk menambah pasangan nilai kunci dan mendapatkan semula nilai berdasarkan sama ada jenis kunci. Contohnya:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

IList<int> betaKeys = greek["Beta"]; // 返回 [2, 5]</code>
Salin selepas log masuk

Pelaksanaan ini menggunakan senarai kosong sebagai nilai pulangan lalai untuk kunci yang tidak wujud, memastikan anda sentiasa menerima senarai, walaupun ia kosong.

Pengindeks boleh disesuaikan

Untuk kemudahan, BiDictionary menyertakan pengindeks yang boleh disesuaikan yang menyediakan akses terus ke kamus dalaman berdasarkan jenis kunci panggilan. Ini memudahkan akses kepada nilai dengan membenarkan anda menggunakan sintaks pengindeks:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");

string secondGreek = greek[2]; // 返回 "Beta"</code>
Salin selepas log masuk

Contoh penggunaan

Kod yang disediakan menunjukkan kefungsian BiDictionary:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

ShowEntries(greek, "Alpha"); // 打印 "Alpha: [1]"
ShowEntries(greek, "Beta"); // 打印 "Beta: [2, 5]"
ShowEntries(greek, "Gamma"); // 打印 "Gamma: []"</code>
Salin selepas log masuk

Contoh ini menunjukkan cara untuk mendapatkan kunci yang sepadan dengan nilai yang diberikan, dan ia mengendalikan kes nilai tidak wujud dengan anggun dengan mengembalikan senarai kosong.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Berbilang Kunci yang Dikaitkan dengan Nilai Tunggal dalam Kamus Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan