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