इस समय मैं List<short>
का उपयोग बफर के रूप में कुछ समय तक रखने के लिए कर रहा हूं, जबकि बफर के नीचे अन्य मानों के आधार पर प्रत्येक मान पर गणना की जाती है। तब मुझे एहसास हुआ कि यह शायद बहुत प्रभावशाली नहीं था क्योंकि मुझे बताया गया है कि List<>
एक लिंक्ड सूची है इसलिए हर बार जब मैं whatever = myList[100];
करता हूं तो खराब चीज को पहले सभी मूल्यों को प्राप्त करने के लिए सभी अन्य नोड्स को कूदना पड़ता है। मैं नियमित ऐरे का उपयोग नहीं करना चाहता क्योंकि मुझे Add()
और Remove()
के कोड में अन्य स्थानों पर लात मारने का भार मिला है। इसलिए मुझे एक कक्षा की आवश्यकता है जो IList<T>
प्राप्त करता है लेकिन नियमित सरणी डेटा संरचना का उपयोग करता है। क्या किसी को .NET में एक वर्ग पता है जो इस तरह से काम करता है इसलिए मुझे अपना खुद लिखना नहीं है? मैंने ऐरेलिस्ट का उपयोग करने की कोशिश की लेकिन यह सामान्य है!सूची डेटा संरचना सी # क्षमता
उत्तर
नहीं, List<T>
एक सामान्य संग्रह है, एक लिंक की गई सूची नहीं है। यदि आपको कार्यक्षमता जोड़ने और हटाने की आवश्यकता है तो List<T>
कार्यान्वयन अधिकांश लोगों के लिए डिफ़ॉल्ट है।
ठीक है, मेरा विचार धन्यवाद कि एक सूची <> एक लिंक की गई सूची गलत थी :( –
यदि मामला सूची में नियमित सरणी के उपयोग के लिए कोई कारण है? –
सादगी के लिए जब आप केवल एक निश्चित से निपट रहे हैं ऑब्जेक्ट्स की संख्या और संग्रह – thecoop
List<T>
एक लिंक किए गए सूची कार्यान्वयन का उपयोग नहीं करता है। आंतरिक रूप से यह एक सरणी का उपयोग करता है, इसलिए ऐसा लगता है कि आपको वही चाहिए। ध्यान दें, क्योंकि यह एक सरणी है, सूची के आकार के आधार पर निकालें/सम्मिलित एक महंगी ऑपरेशन हो सकता है और स्थिति आइटम हटाया/डाला जा सकता है - ओ (एन)। आप इसका उपयोग कैसे कर रहे हैं इसके बारे में और जानने के बिना, हालांकि, बेहतर डेटा संरचना की सिफारिश करना मुश्किल है।
docs के टिप्पणियां अनुभाग से उद्धरण।
सूची (टी) कक्षा ArrayList कक्षा का सामान्य समकक्ष है। यह आईएलआईस्ट (टी) जेनेरिक इंटरफ़ेस को एक सरणी का उपयोग करके लागू करता है जिसका आकार आवश्यकतानुसार गतिशील रूप से बढ़ाया जाता है।
List<T>
एक सरणी द्वारा समर्थित है, एक लिंक की गई सूची नहीं। List<T>
की अनुक्रमित पहुंच निरंतर समय में होती है।
tvanfosson के सही उत्तर के अलावा, यदि आप कभी भी आंतरिक रूप से कुछ काम करने के बारे में अनिश्चित हैं, तो बस .NET Reflector लोड करें और आप देख सकते हैं कि चीजें कैसे लागू की जाती हैं।
public T this[int index]
{
get
{
if (index >= this._size)
{
ThrowHelper.ThrowArgumentOutOfRangeException();
}
return this._items[index];
}
// ...
जहां आप देख सकते है कि this._items[index]
सामान्य प्रकार T
की एक सरणी है: इस मामले में, List<T>
की इंडेक्सर के लिए नीचे ड्रिलिंग हमें निम्नलिखित कोड को दर्शाता है।
क्योंकि परावर्तक अब मुक्त नहीं है, [ILSpy] (http://ilspy.net/) और [DotPeek] (http://www.jetbrains.com/decompiler/) अन्य निःशुल्क विकल्प हैं। –
- 1. एक कुशल डेटा संरचना क्षमता
- 2. सी # संरचना डेटा सदस्य
- 3. सी # रिटर्निंग सूची - असंगत पहुँच क्षमता
- 4. सूची <> क्षमता
- 5. सी भाषा डेटा संरचना विजुअलाइजेशन
- 6. मल्टीप्ली ऑपरेटर सूची (डेटा संरचना) पर लागू
- 7. पाइथन डेटा संरचना सॉर्ट सूची वर्णानुक्रम
- 8. डेटा संरचना ब्रशअप (जावा)
- 9. डेटा संरचना
- 10. ओवरले डेटा संरचना?
- 11. रस्सी डेटा संरचना
- 12. सी में मानक डेटा संरचना लाइब्रेरी?
- 13. सी - डेटा संरचना सेट कैसे कार्यान्वित करें?
- 14. जावा में डेटा संरचना जैसे संरचना बनाना
- 15. आर डेटा संरचनाओं पर संचालन की क्षमता
- 16. एफएसएम डेटा संरचना डिजाइन
- 17. डेटा संरचना रेंज
- 18. समवर्ती डेटा संरचना डिजाइन
- 19. सी # डेटा संरचना जैसे शब्दकोश लेकिन बिना मूल्य के
- 20. सी संरचना
- 21. सी/सी ++: एक संरचना
- 22. पायथन सूची के लिए अंतर्निहित डेटा संरचना क्या है?
- 23. लिनक्स खोल समर्थन सूची डेटा संरचना करता है?
- 24. डेटा संरचना विकसित करना
- 25. बेस्ट डेटा संरचना एक शब्दकोश
- 26. सी # फ़ाइल आई/ओ क्षमता
- 27. स्विच बयान - सी #/आईडीई क्षमता
- 28. वृक्ष डेटा संरचना के लिए डेटाबेस संरचना
- 29. "डेटा बिट" क्षमता बनाम "ओवरहेड बिट" आकार?
- 30. उपयुक्त डेटा संरचना पर्वतमाला
ईमानदारी से, मुझे नहीं लगता कि आपको दक्षता के बारे में बहुत अधिक तनाव देना होगा। आपको प्राप्त होने वाले किसी भी लाभ को शायद ही ध्यान देने योग्य – lomaxx
'सूची <> 'एक लिंक्डलिस्ट नहीं है। 'लिंक्डलिस्ट <>' हालांकि है। आप देख सकते थे कि क्योंकि किसी लिंक की गई सूची में यादृच्छिक पहुंच का खुलासा करने का कोई मतलब नहीं है। – Dykam
सूची में अनुक्रमित पहुंच ओ (1) ऑपरेशन है। – digEmAll