c# - लिंक क्वेरी परिणाम को शब्दकोश में कनवर्ट करें




2 Answers

ToDictionary विधि का उपयोग करने का प्रयास करें:

var dict = TableObj.Select( t => new { t.Key, t.TimeStamp } )
                   .ToDictionary( t => t.Key, t => t.TimeStamp );

मैं लिंक से एसक्यूएल का उपयोग कर डेटाबेस में कुछ पंक्तियां जोड़ना चाहता हूं, लेकिन मैं पंक्तियों को जोड़ने से पहले "कस्टम चेक" बनाना चाहता हूं, यह जानने के लिए कि क्या मुझे इनकमिंग पंक्तियों को जोड़ना, प्रतिस्थापित करना या अनदेखा करना है। मैं क्लाइंट और डीबी सर्वर के बीच जितना संभव हो उतना कम ट्रैफिक रखना चाहता हूं और प्रश्नों की संख्या को कम करना चाहता हूं।

ऐसा करने के लिए, मैं प्रमाणीकरण के लिए जरूरी छोटी जानकारी प्राप्त करना चाहता हूं, और प्रक्रिया की शुरुआत में केवल एक बार।

मैं ऐसा कुछ करने की सोच रहा था, लेकिन जाहिर है, यह काम नहीं करता है। किसी के पास कोई विचार है?

Dictionary<int, DateTime> existingItems = 
    (from ObjType ot in TableObj
        select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
    )

अंत में जो मैं चाहता हूं वह एक शब्दकोश होगा, बिना टेबल ऑब्जेक्ट से ऑब्जेक्ट टाइप ऑब्जेक्ट डाउनलोड किए।

मैंने निम्नलिखित कोड भी माना, लेकिन मैं एक उचित तरीका खोजने की कोशिश कर रहा था:

List<int> keys = (from ObjType ot in TableObj orderby ot.Key select ot.Key).ToList<int>();
List<DateTime> values = (from ObjType ot in TableObj orderby ot.Key select ot.Value).ToList<int>();
Dictionary<int, DateTime> existingItems = new Dictionary<int, DateTime>(keys.Count);
for (int i = 0; i < keys.Count; i++)
{
    existingItems.Add(keys[i], values[i]);
}



निम्नलिखित कोशिश करें

Dictionary<int, DateTime> existingItems = 
    (from ObjType ot in TableObj).ToDictionary(x => x.Key);

या पूरी तरह से विकसित प्रकार संदर्भित संस्करण

var existingItems = TableObj.ToDictionary(x => x.Key);



Related

c# linq linq-to-sql todictionary