में मनमानी रैंक के सरणी में अनुक्रमण करना मुझे मनमाना रैंक की एक सरणी पर फिर से चलने की आवश्यकता है। यह पढ़ने और लिखने दोनों के लिए है, इसलिए GetEnumerator
काम नहीं करेगा।सी #
Array.SetValue(object, int)
बहुआयामी सरणी पर काम नहीं करता है। Array.SetValue(object, params int[])
को बहुआयामी अंतरिक्ष के माध्यम से पुनरावृत्ति के लिए अत्यधिक अंकगणित की आवश्यकता होगी। हस्ताक्षर के params
भाग के लिए इसे गतिशील आमंत्रण की भी आवश्यकता होगी।
मैं एक पॉइंटर के साथ सरणी को पिन करने और इसे फिर से भरने का लुत्फ उठा रहा हूं, लेकिन मुझे कोई दस्तावेज नहीं मिल रहा है जो कहता है कि बहुआयामी सरणी संगत होने की गारंटी है। यदि उनके पास आयाम के अंत में पैडिंग है तो यह काम नहीं करेगा। मैं असुरक्षित कोड से बचना भी पसंद करूंगा।
क्या केवल एक ही इंडेक्स का उपयोग करके एक बहुआयामी सरणी को अनुक्रमिक रूप से संबोधित करने का कोई आसान तरीका है?
मुझे "असुरक्षित" कोड का उपयोग करने में कोई त्रुटि नहीं दिखाई देती है। पॉइंटर्स का उपयोग करना सुरक्षित है जब आप वास्तव में जानते हैं कि आप क्या कर रहे हैं और यह एक व्यवहार्य और कुशल समाधान है। –
बीटीडब्ल्यू यह 'int []' पास करने के लिए पूरी तरह से मान्य है जहां 'पैराम int [] 'अपेक्षित है। – dtb
@ डीटीबी, आप दोनों वाक्यविन्यास बिंदुओं पर सही प्रतीत होते हैं। मुझे कभी नहीं पता था कि आप सीधे एक सरणी पैरामीटर सरणी पैरामीटर में पास कर सकते हैं। –