Mendapatkan Kekunci Kamus Berdasarkan Nilai dalam C#
Dalam C#, kamus ialah pasangan nilai kunci di mana setiap kunci unik sepadan dengan nilai tunggal . Walau bagaimanapun, mendapatkan semula kunci daripada nilai tidak disokong secara langsung. Artikel ini menyediakan penyelesaian yang cekap untuk menangani cabaran ini.
Menggunakan Carian
Memandangkan nilai dalam kamus mungkin tidak unik, anda perlu melakukan carian untuk mencari kunci yang sepadan. Ini boleh dicapai menggunakan kaedah FirstOrDefault bagi kelas Boleh Dipertanyakan seperti berikut:
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
Baris ini berulang melalui kamus menggunakan ungkapan lambda dan mengembalikan kunci pertama di mana nilai yang berkaitan sepadan dengan "satu."
Menggunakan Kamus Songsang
Jika nilai dalam kamus dijamin unik dan kurang kerap disisipkan daripada dibaca, anda boleh mencipta kamus lain di mana nilai menjadi kunci dan sebaliknya. Kamus songsang ini boleh mempercepatkan pengambilan kunci:
Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); foreach (var item in types) { inverseTypes[item.Value] = item.Key; } string myKey = inverseTypes["one"];
Pendekatan ini membolehkan pencarian terus kunci mengikut nilai tetapi memerlukan pengekalan kedua-dua kamus asal dan songsang.
HashTable atau SortedLists
Jadual cincang dan senarai diisih tidak begitu sesuai untuk kunci mendapatkan semula dengan nilai sebagai kamus. Mereka biasanya tidak menyediakan cara yang cekap untuk mencari kunci berdasarkan nilai tertentu. Kamus direka khusus untuk mengendalikan pasangan nilai kunci dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kekunci Kamus Dengan Cekap Berdasarkan Nilai dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!