मेरे आवेदन की आवश्यकताएं निम्नानुसार हैं।निम्नलिखित स्थिति के लिए सबसे अच्छा सी # डेटा संरचना क्या है
प्रत्येक आदेश एक विशिष्ट stockcode (स्ट्रिंग) से संबंधित है और एक मूल्य, मात्रा और चाहे या नहीं इसे खरीदा जा रहा है या बेचा (बुलियन) इसके साथ जुड़े: मैं आदेश जो इस तरह दिखेगा स्टोर करने के लिए की जरूरत है।
मुझे किसी विशिष्ट स्टॉक से संबंधित सभी आदेशों पर कई संचालन करने की आवश्यकता है, उदाहरण के लिए स्टॉककोड "एबीसी" के लिए ऑर्डर की मात्रा प्राप्त करें।
मैं डेटा संरचना
मैं डेटा संरचना
मैं पता लगाने के लिए सक्षम होना चाहिए से एक आदेश को दूर करने में सक्षम होना चाहिए करने के लिए एक आदेश को जोड़ने में सक्षम होने की जरूरत है जो ऑर्डर जोड़ने या निकालने के बाद आदेश सबसे अच्छी कीमत पेश कर रहा है। सूची
public class Order : IComparable { private string _StockCode; private bool _BidSide; private int _Volume; private decimal _Price; private int _ExchangeOrderId; public int CompareTo(Order other) { if (_BidSide != other.BidSide) { return _BidSide ? 1 : -1; } return decimal.Compare(_Price, other.Price); } }
और फिर मैं एक शब्दकोश < स्ट्रिंग में आदेश संग्रहीत करेंगे, < आदेश > >:
यहाँ मैं अब तक सोच रहा हूँ है। जहां प्रत्येक स्टॉक कोड उस स्टॉक के ऑर्डर की ओर इशारा करते हुए शब्दकोश में एक कुंजी होगी। मैं स्टॉक कोड में ऑर्डर आईडी से मेल खाने वाला शब्दकोश भी बनाए रखूंगा।
नया ऑर्डर जोड़ने के लिए, मुझे वर्तमान स्टॉक कोड के आधार पर शब्दकोश में ऑर्डर की उचित सूची मिलती है, और ऑर्डर डालें। मैं अनुमोदित सूची के साथ वर्तमान क्रम से मेल खाने वाले ऑर्डरस्टॉक शब्दकोश में एक प्रविष्टि भी जोड़ूंगा।
सर्वश्रेष्ठ मूल्य पाने के लिए, मैं मौजूदा स्टॉक कोड के लिए शब्दकोश में आदेश सूची को देखने के लिए, सूची को सॉर्ट और सर्वोच्च क्रम प्रिंट आउट।
हटाना मुश्किल है। मुझे पहले स्टॉक कोड द्वारा उचित सूची देखने की आवश्यकता होगी। इसके बाद मुझे उस स्टॉक कोड के सभी ऑर्डर के माध्यम से फिर से शुरू करने की आवश्यकता होगी और वह उस ऑर्डर को ढूंढें जो वर्तमान ऑर्डर आईडी से मेल खाता है और इसे हटा देता है। यदि वर्तमान स्टॉक कोड के लिए बहुत सारे ऑर्डर हैं तो यह स्पष्ट रूप से अक्षम है। क्या यह जानकारी संग्रहीत करने का सबसे अच्छा तरीका है?
कुछ बेवकूफ, लेकिन मानकों का कहना है कि _ लोअरकेस के बाद। –
"वर्तमान स्टॉक कोड के लिए बहुत सारे ऑर्डर होने पर यह स्पष्ट रूप से अक्षम है।" हां और ना। यह इस बात पर निर्भर करता है कि "बहुत" क्या है और आप कितनी बार ऑर्डर हटाने की उम्मीद करते हैं। यदि आप एक सेकंड में सैकड़ों ऑर्डर हटा रहे हैं और आपके पास प्रति शेयर 1,000 ऑर्डर हो सकते हैं, तो यह धीमा होने जा रहा है। लेकिन यदि आप स्टॉक के लिए दर्जनों ऑर्डर की बात कर रहे हैं और ऑर्डर हटाना अकसर है, तो "अक्षमता" कोई समस्या नहीं है। –
किसी भी कारण से यह डेटाबेस में नहीं है? वे इस तरह के व्यवहार के लिए दर्जी बने हैं ... – Telastyn