मैं Linq/लैम्ब्डा बारे में एक प्रश्न और निम्नलिखित मुद्दा है:शब्दकोशों एक दूसरे को काटना
मैं दो शब्दकोशों, प्राथमिक और माध्यमिक ... दो ये शब्दकोशों कुंजी = स्ट्रिंग, मान = पूर्णांक के रूप में परिभाषित कर रहे हैं। यदि कुंजी माध्यमिक शब्दकोश के साथ छेड़छाड़ की जाती है तो मुझे प्राथमिक शब्दकोश को ट्रिम करने की आवश्यकता होती है।
अर्थात्:
primaryDict = ["thing1", 33] ["thing2", 24] ["thing3", 21] ["thing4", 17] ["thing5", 12]
secondaryDict = ["thing1", 22] ["thing3", 20] ["thing4", 19] ["thing7", 17] ["thing9", 10]
resultDict = ["thing1", 33] ["thing3", 21] ["thing4", 17]
मेरे प्रयास:
resultDict = primaryDict.Keys.Intersect(secondaryDict.Keys).ToDictionary(t => t.Key, t.Value);
यह स्पष्ट रूप से क्योंकि primaryDict.Keys.Intersect कुंजी की एक सूची लौट रहा है काम नहीं करता है ... कैसे मैं एक नया पैर जमाने होगा शब्दकोश, या प्राथमिक शब्दकोश को जोड़ना? किसी भी सहायता की सराहना की जाएगी।
मुझे लगता है कि पिछले संस्करण में काफी बेहतर है, जैसा कि मैंने एक IEnumerable के रूप में शब्दकोश के इलाज के शब्दकोश का लाभ उठाने होंगे नहीं लगता कि, और ओ में चलेंगे (एन) समय। –
जो मैंने कर रहा है उसके लिए बहुत अच्छा काम किया ... मैंने दूसरा समाधान इस्तेमाल किया और सबकुछ अपेक्षित के रूप में काम कर रहा है। आप डेव रॉक! –
एक अनुवर्ती के रूप में ... क्या इस अभिव्यक्ति में मूल्यों को जोड़ना संभव है? –