Gabung Berbilang Kamus dengan Cekap dalam C#
Apabila bekerja dengan berbilang kamus dalam C#, menggabungkannya ke dalam satu kamus boleh menjadi tugas biasa. Berikut ialah kaedah yang mantap dan cekap untuk mencapainya:
public static Dictionary<TKey, TValue> Merge<TKey, TValue>(IEnumerable<Dictionary<TKey, TValue>> dictionaries) { return dictionaries.SelectMany(dict => dict).ToDictionary(pair => pair.Key, pair => pair.Value); }
Kaedah sambungan ini mengambil koleksi kamus yang banyak sebagai hujah dan meratakannya ke dalam satu kamus dengan memilih semua pasangan nilai kunci daripada setiap kamus menggunakan SelectMany . Ia kemudian menukar hasilnya kepada kamus baharu menggunakan ToDictionary dengan kunci dan nilai daripada pasangan yang diratakan.
Jika kamus asal mengandungi kunci pendua, tingkah laku kaedah ini bergantung pada versi .NET yang digunakan. Dalam versi .NET sebelum 8, ia akan membuang pengecualian. Dalam .NET 8 dan lebih baru, lebihan ToDictionary yang baru ditakrifkan akan mengabaikan kunci pendua.
Untuk senario yang lebih maju, anda juga boleh menggunakan ToLookup untuk mencipta kamus carian yang membenarkan berbilang nilai bagi setiap kunci. Walau bagaimanapun, menukarnya kepada kamus dengan kekunci unik memerlukan langkah tambahan, seperti yang ditunjukkan dalam kod rujukan yang disediakan.
Sama ada anda memilih untuk menulis ganti kekunci pendua atau mengendalikannya secara berbeza, cerapan utama adalah untuk memanfaatkan kuasa LINQ Operator SelectMany untuk meratakan kamus dan mencipta yang baharu dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah saya dapat menggabungkan pelbagai kamus dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!