Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat menggabungkan pelbagai kamus dalam C#?

Bagaimanakah saya dapat menggabungkan pelbagai kamus dalam C#?

Susan Sarandon
Lepaskan: 2025-01-25 22:36:16
asal
950 orang telah melayarinya

How Can I Efficiently Merge Multiple Dictionaries in C#?

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);
}
Salin selepas log masuk

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!

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