मैं सिर्फ स्पष्टीकरण देना चाहता हूं (उदाहरण दिया गया है और क्या पूछा जा रहा है)।
एक दांतेदार सरणी सरणियों की एक सरणी है और इस तरह तो घोषित किया जाता है:
string[,] data = new string[3,3];
data[0,0] = "0,0";
data[0,1] = "0,1";
data[0,2] = "0,2";
...etc
:
string[][] data = new string[3][];
data[0] = new string[] { "0,[0]", "0,[1]", "0,[2]" };
data[1] = new string[] { "1,[0]", "1,[1]", "1,[2]" ];
data[2] = new string[] { "2,[0]", "1,[1]", "1,[2]" };
एक आयताकार सरणी बनाम एक सारिणी कि कई आयामों धारण के रूप में परिभाषित किया जा रहा
इस वजह से, jagged array IQueryable/IEnumerab है ले क्योंकि आप प्रत्येक पुनरावृत्ति पर एक सरणी प्राप्त करने के लिए इसे पुन: सक्रिय कर सकते हैं। एक आयताकार सरणी जबकिहै नहीं IQueryable/IEnumerable क्योंकि तत्वों पूर्ण आयाम (0,0 0,1..etc) में संबोधित कर रहे हैं ताकि आप Linq या के लिए बनाए गए किसी भी पूर्वनिर्धारित कार्यों का उपयोग करने की क्षमता नहीं होगा उस मामले में ऐरे।
आप सरणी एक बार से अधिक पुनरावृति कर सकते हैं हालांकि (और प्राप्त आप क्या चाहते हैं) इस तरह:
/// INPUT: rowIndex, OUTPUT: An object[] of data for that row
int colLength = stringArray.GetLength(1);
object[] rowData = new object[colLength];
for (int col = 0; col < colLength; col++) {
rowData[col] = stringArray[rowIndex, col] as object;
}
return rowData;
/// INPUT: colIndex, OUTPUT: An object[] of data for that column
int rowLength = stringArray.GetLength(0);
object[] colData = new object[rowLength];
for (int row = 0; r < rowLength; row++) {
colData[row] = stringArray[row, colIndex] as object;
}
return colData;
आशा इस मदद करता है :)
मुझे नहीं लगता कि कर रहा है क्या ("या तो एक पंक्ति या एक स्तंभ") के लिए कहा गया है है। –
LINQ आंतरिक रूप से एक लूप का उपयोग नहीं करेगा? – Rohit
जॉन को इंगित करने के लिए धन्यवाद। मैंने जवाब के उस हिस्से से ठीक पहले पढ़ा। – JaredPar