मैं LINQ का उपयोग करके किसी शब्दकोश को कैसे फ़िल्टर कर सकता हूं और उसे उसी प्रकार के शब्दकोश में वापस कर सकता हूं


87

मेरे पास निम्नलिखित शब्दकोष है:

Dictionary<int,string> dic = new Dictionary<int,string>();
dic[1] = "A";
dic[2] = "B";

मैं शब्दकोश की वस्तुओं को फ़िल्टर करना चाहता हूं और उसी चर के परिणाम को पुन: असाइन करता हूं:

dic = dic.Where (p => p.Key == 1);

मैं उसी प्रकार [ <int,string>] से एक शब्दकोश के रूप में परिणाम कैसे वापस कर सकता हूं ?

मैंने कोशिश की ToDictionary, लेकिन यह काम नहीं करता है।

अग्रिम में धन्यवाद।


11
भविष्य में, यदि आपने स्पष्ट दृष्टिकोण की कोशिश की है, लेकिन यह काम नहीं करता है, तो कृपया उस कोड को पोस्ट करें जिसे आपने कोशिश की है।
जॉन स्कीट

जवाबों:


193

ToDictionaryजाने का रास्ता है। यह काम करता है - आप इसे गलत तरीके से उपयोग कर रहे थे, संभवतः। इसे इस्तेमाल करे:

dic = dic.Where(p => p.Key == 1)
         .ToDictionary(p => p.Key, p => p.Value);

यह कहने के बाद, मुझे लगता है कि आप वास्तव में एक अलग Whereफिल्टर चाहते हैं , क्योंकि आपका वर्तमान केवल एक ही कुंजी पाएगा ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.