के लिए मानों की श्रृंखला का उपयोग करती है मुझे एक विशेष शब्दकोश की आवश्यकता है। मेरा उपयोग मामला यह है: उपयोगकर्ता मानों की श्रेणियां निर्दिष्ट करना चाहता है (सीमा भी एक बिंदु हो सकती है) और किसी विशेष सीमा के लिए मान असाइन करें। फिर हम एक कुंजी के रूप में एक एकल मान का उपयोग करके एक लुकअप करना चाहते हैं। यदि यह एकल मान किसी श्रेणी के भीतर होता है तो हम सीमा से जुड़े मूल्य को वापस कर देंगे।एक शब्दकोश वस्तु जो कुंजी
उदाहरण के लिए:
// represents the keyed value
struct Interval
{
public int Min;
public int Max;
}
// some code elsewhere in the program
var dictionary = new Dictionary<Interval, double>();
dictionary.Add(new Interval { Min = 0, Max = 10 }, 9.0);
var result = dictionary[1];
if (result == 9.0) JumpForJoy();
यह स्पष्ट रूप से सिर्फ मैं क्या देख रहा हूँ वर्णन करने के लिए कुछ कोड है। क्या किसी को ऐसी चीज को लागू करने के लिए एल्गोरिदम के बारे में पता है? यदि ऐसा है तो वे मुझे इसके प्रति इंगित कर सकते हैं, कृपया?
मैंने पहले से ही एक कस्टम IEqualityComparer ऑब्जेक्ट को लागू करने और अंतराल पर बराबर() और GetHashCode() को अधिभारित करने का प्रयास किया है लेकिन अब तक इसका कोई फायदा नहीं हुआ है। ऐसा हो सकता है कि मैं कुछ गलत कर रहा हूँ।
आपको अपना खुद का कस्टम संग्रह लागू करना होगा। मुझे नहीं लगता कि आप मानक शब्दकोश वर्ग के साथ क्या मांग रहे हैं। – Nick
चूंकि आपकी अंतराल सीमाएं पूर्णांक हैं, यदि आपका डोमेन पर्याप्त रूप से छोटा है और कोई भी दो अंतराल ओवरलैप नहीं है, तो आप केवल युगल की सरणी का उपयोग कर सकते हैं। आपके उदाहरण में, इंडेक्स 0 से 10 पर सरणी तत्व 9.0 पर सेट किए जाएंगे। लुकअप तब ओ (1) है। –
मैं कहूंगा कि 'बराबर' को ओवरराइड करने से आपको सही परिणाम मिलेंगे, लेकिन इसका मतलब है कि आपके पास – nawfal