मैं सी # लक्ष्यीकरण .NET 3.5 में एक ऐप विकसित कर रहा हूं। इसमें, मेरे पास 2 समान शब्दकोश हैं जिनमें मेरे ऐप में तत्वों के विशिष्ट सेट के लिए सत्यापन मानदंड शामिल हैं। दोनों शब्दकोशों में समान हस्ताक्षर होते हैं। पहले शब्दकोश में डिफ़ॉल्ट सेटिंग्स होती हैं और दूसरे शब्दकोश में कुछ उपयोगकर्ता परिभाषित सेटिंग्स होती हैं।सी # विलय 2 शब्दकोश
var default_settings = new Dictionary<string, MyElementSettings>();
var custom_settings = new Dictionary<string, MyElementSettings>();
मैं 2 शब्दकोशों को एक साथ जोड़ना चाहता हूं जिसमें दोनों शब्दकोशों के तत्व शामिल हैं।
जिस समस्या में मैं चल रहा हूं, यह है कि दोनों शब्दकोशों में से कुछ समान मूल्यों के लिए संभव है। मूल नियम जो मैं चाहता हूं वह दोनों शब्दकोशों का संयोजन होना है और यदि कस्टम_सेटिंग में पहले से मौजूद डिफ़ॉल्ट_सेटिंग में कोई कुंजी है, तो custom_settings मान डिफ़ॉल्ट_सेटिंग मान को ओवरराइट कर देगा। मेरे पास सबसे अच्छा समाधान सिर्फ एक फोरच लूप है, जांचें कि कुंजी अन्य शब्दकोश में मौजूद है या नहीं, और यदि नहीं, तो इसे जोड़ें।
foreach (var item in custom_settings)
{
if (default_settings.ContainsKey(item.Key))
default_settings[item.Key] = item.Value;
else
default_settings.Add(item.Key, item.Value);
}
मैं कुछ बुनियादी LINQ प्रश्नों किया है, लेकिन मैं अभी भी और अधिक उन्नत सामान सीखने पर काम कर रहा हूँ। मैंने कुछ प्रश्नों को देखा है जो 2 शब्दकोशों को मर्ज करेंगे, लेकिन अधिकांश में डुप्लिकेट कुंजियों के साथ किसी भी तत्व को समूहीकृत करना शामिल है, या केवल डुप्लिकेट कुंजी के साथ संग्रह को वापस लेना/क्या कोई LINQ क्वेरी या अभिव्यक्ति है जो फ़ोरैच लूप के व्यवहार की नकल करेगी मै इस्तेमाल कर रहा हूँ?
बिंदु # 2 (http://msdn.microsoft.com/en-us/library/k7z0zy8k.aspx) – Brad
+1 मुझे कुछ मुझे नहीं पता था कि शिक्षण के लिए लिए +1। मैं अपेक्षाकृत स्वयं सी # के साथ सिखाया जाता हूं और कभी नहीं जानता था कि आप शब्दकोशों के साथ ऐसा कर सकते हैं। – psubsee2003
@ psubsee2003: चीयर्स। मुझे पूरा यकीन है कि मैंने आपके कोड के समान पैटर्न का इस्तेमाल किया था इससे पहले कि मैंने पाया कि यह अनावश्यक था (मौके से, परावर्तक के साथ घूम रहा था)। – Ani