यदि एक आयामी सरणी में row major order में आदिम डेटा होता है, और 2 आयामी सरणी की कुल क्षमता एक आयामी सरणी की लंबाई के बराबर होती है, तो आप इसका उपयोग कर सकते हैं।
int[] source = new int[6];
int[,] target = new int[3, 2];
Buffer.BlockCopy(source, 0, target, 0, source.Length * sizeof(int));
ध्यान दें कि Array.Copy
और अन्य सरणी/सूची तरीकों के विपरीत, Buffer.BlockCopy
बाइट्स डेटा की के एक नंबर पर चल रही है, भले ही सरणी के प्रत्येक तत्व 1 बाइट से बड़ा है। यह केवल आदिम डेटा प्रकारों के सरणी पर भी काम करता है।
अतिरिक्त संदर्भ:
संपादित में जमा हो जाती: यहाँ एक पूर्ण इकाई परीक्षण है।
[TestMethod]
public void SOTest()
{
int[] source = new int[6] { 1, 2, 3, 4, 5, 6 };
int[,] destination = new int[3, 2];
Buffer.BlockCopy(source, 0, destination, 0, source.Length * sizeof(int));
Assert.AreEqual(destination[0, 0], 1);
Assert.AreEqual(destination[0, 1], 2);
Assert.AreEqual(destination[1, 0], 3);
Assert.AreEqual(destination[1, 1], 4);
Assert.AreEqual(destination[2, 0], 5);
Assert.AreEqual(destination[2, 1], 6);
}
'{1,2,3,4,5,6,8,9,10,11,12}' के लिए क्या? '{{1,2,3,4}, {5,6,7,8}, {9,10,11,12}' या '{{1,2,3}, {4,5,6} , {7,8,9}, {10,11,12}} ' – I4V
क्या आपके पास हमेशा भी लंबाई होगी? क्या टुपल हमेशा एक जोड़ी होगी? यह देखने के लिए http://www.dotnetperls.com/tuple देखें कि क्या यह आपके प्रश्न को बेहतर तरीके से परिभाषित करने में आपकी सहायता करता है। – AdamV
एक कॉलम सरणी के लिए एक दोहरी कॉलम सरणी के लिए एक मानता है, क्योंकि यह उसके प्रश्न में बताता है। – Zeddy