से मेल खाती है, मुझे एक ऐसी सूची मिली है जो कई ऑब्जेक्ट्स स्टोर करती है। प्रत्येक ऑब्जेक्ट में एक चर के रूप में एक संपत्ति होती है।सबसे तेज़ डेटा संरचना यह जांचने के लिए कि ऑब्जेक्ट्स की सूची में कोई संपत्ति
मैं यह जांचने में सक्षम होना चाहता हूं कि इस सूची में से किसी एक आइटम में एक निश्चित संपत्ति है या नहीं। शब्दकोश के ContainsKey विधि के समान। यह डेटा संरचना बहुत अधिक मात्रा में मूल्यों को पकड़ने के लिए है, संभवतः यहां तक कि लाखों और मैं इस प्रकार डेटा संरचना का उपयोग करना चाहूंगा जो गुणों को जितनी जल्दी हो सके जांच सके।
क्या शब्दकोश इस नौकरी के लिए सबसे तेज़ होगा, या वहां तेजी से डेटा संरचनाएं हैं?
संपादित करें:
यहां एक त्वरित, मैं प्राप्त करने के लिए चाहते हैं, उसे के छोटे उदाहरण है:
Dictionary<string, Person> persons = new Dictionary<string, Person>(); //where string contains the Person's name
bool isPresent = persons.ContainsKey("Matt");
ये लाखों रिकॉर्ड कहां से आ रहे हैं? डेटा स्रोत के विरुद्ध * क्वेरी * के विरुद्ध एक IENumerable डेटा सबसे तेज़ है। स्मृति में लाखों रिकॉर्ड लोड हो रहा है व्यावहारिक नहीं है। डेटाबेस/एनओएसक्यूएल को LINQ के माध्यम से भारी उठाने दें। –
tawman
क्या आप पहले से ही प्रकार और संपत्ति जानते हैं। अर्थात। क्या आप "क्षेत्र" संपत्ति के लिए "ऑर्डर" ऑब्जेक्ट का परीक्षण कर रहे हैं? या यह एक निश्चित नाम संपत्ति के लिए एक अज्ञात वस्तु है? या यह गतिशील उपयोग कर सकता है? या यदि सदस्य तय नहीं है, शायद फास्टमेम्बर? या ...? या ...? कृपया एक उदाहरण जोड़ें ... –
@tawman: रिकॉर्ड के आकार के आधार पर स्मृति में लाखों रिकॉर्ड * बिल्कुल * व्यावहारिक (और चमकदार रूप से तेज़) हो सकते हैं। पिछली नौकरी में मैंने कोड को परिवर्तित करके * बेहद * प्रदर्शन को बढ़ावा देने में कामयाब रहा, जो डेटाबेस तालिका में एक मेमोरी में एक लुकअप कर रहा था, जो मेमोरी उपयोग को कम करने के लिए ट्यून किया गया था। यह सब संदर्भ पर निर्भर करता है। –