2010-04-05 17 views
43

एक जंजीर सरणी (सी # में) क्या है? किसी भी उदाहरण है और जब भी इसे का उपयोग करना चाहिए ....एक जंजीर सरणी क्या है?

+5

जाली –

+2

का उपयोग करने वाली किसी भी भाषा में जालीदार सरणी मौजूद हैं, यह भी ध्यान दें कि अन्य चीजें एक्सएमएल पथ (कुछ तत्वों में उप-बच्चे और अन्य नहीं हो सकते हैं), सूचियों (सूचियों), शब्दकोश और जैसे । बस सोचा कि मैं अलग-अलग अवधारणाओं को समान होने के समान, या समान अंतर्निहित संरचनाओं को जोड़ने में आपकी सहायता करूंगा। – jcolebrand

+0

एरिक लिपर्ट [यहां] (https://blogs.msdn.microsoft.com/ericlippert/2009/08/17/arrays-of-arrays/) द्वारा जंजीर सरणी पर बहुत अच्छा पढ़ा गया। – RBT

उत्तर

53

एक दांतेदार सरणी सरणियों की एक सरणी है।

string[][] arrays = new string[5][]; 

पांच अलग स्ट्रिंग सरणियों का एक संग्रह है यही कारण है, प्रत्येक एक अलग लंबाई हो सकता है (वे भी एक ही लंबाई हो सकता है, लेकिन मतलब नहीं है कोई गारंटी वे कर रहे हैं कि है)।

arrays[0] = new string[5]; 
arrays[1] = new string[100]; 
... 

यह एक 2 डी सरणी जहां यह है आयताकार, प्रत्येक पंक्ति अर्थ स्तंभों की एक ही नंबर है से अलग है।

string[,] array = new string[3,5]; 
+1

सटीक होने के लिए, आंतरिक सरणी * आवश्यक * सभी समान लंबाई नहीं हैं; वे बहुत अच्छी तरह से हो सकता है। यह वास्तव में बहु-आयामी सरणी को जंजीर सरणी के रूप में लागू करने के लिए काफी आम है। – Asik

+0

@ असिक, मैं सहमत हूं। लंबाई के बारे में पहली वाक्य में शब्द किसी अन्य उपयोगकर्ता द्वारा संपादित किए गए थे। अपडेट करूंगी। –

9

एक दांतेदार सरणी किसी भी भाषा में ही है, लेकिन जहां दूसरे और परे सरणी में अलग सरणी लंबाई के साथ एक 2 + आयामी सरणी है बस।

[0] - 0, 1, 2, 3, 4 
[1] - 1, 2, 3 
[2] - 5, 6, 7, 8, 9, 10 
[3] - 1 
[4] - 
[5] - 23, 4, 7, 8, 9, 12, 15, 14, 17, 18 
5

आप यहाँ अधिक जानकारी प्राप्त कर सकते हैं: http://msdn.microsoft.com/en-us/library/2s05feca.aspx

इसके अलावा:

एक दांतेदार सरणी एक सरणी जिसका तत्वों सरणियों हो रहा है। एक जंजीर सरणी के तत्व विभिन्न आयामों और आकारों के हो सकते हैं। एक जंजीर सरणी को कभी-कभी "सरणी की सरणी" कहा जाता है। निम्नलिखित उदाहरण दिखाते हैं कि कैसे घुमावदार सरणी घोषित करना, आरंभ करना और एक्सेस करना है।

jaggedArray[0] = new int[5]; 
jaggedArray[1] = new int[4]; 
jaggedArray[2] = new int[2]; 

या

jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 }; 
jaggedArray[1] = new int[] { 0, 2, 4, 6 }; 
jaggedArray[2] = new int[] { 11, 22 }; 
0

दांतेदार सरणी है:

निम्नलिखित एक भी आयामी सरणी तीन तत्वों, जिनमें से प्रत्येक है कि की एक घोषणा है पूर्णांकों का एक भी आयामी सरणी है भीतर के अन्य सरणी के साथ एक सरणी।

एक दांतेदार सरणी एक सरणी जिसमें पंक्तियों की संख्या ठीक हो गई है लेकिन स्तंभ की संख्या तय नहीं है। खिड़की प्रपत्र आवेदन

int[][] a = new int[3][]; 

a[0]=new int[5]; 
a[1]=new int[3]; 
a[2]=new int[1]; 

int i; 

for(i = 0; i < 5; i++) 
{ 
    a[0][i] = i; 
    ListBox1.Items.Add(a[0][i].ToString()); 
} 

for(i = 0; i < 3; i++) 
{ 
    a[0][i] = i; 
    ListBox1.Items.Add(a[0][i].ToString()); 
} 

for(i = 0; i < 1; i++) 
{ 
    a[0][i] = i; 
    ListBox1.Items.Add(a[0][i].ToString()); 
} 

आप उपरोक्त कार्यक्रम पंक्तियों की कोई 3 से तय हो गई है में देख सकते हैं के लिए सी # में दांतेदार सरणी, लेकिन स्तंभों की संख्या के लिए

कोड तय नहीं किया गया है। इसलिए हम स्तंभों की तीन अलग-अलग मूल्य ले लिया है IE 5, 3 और 1. ListBox1 कीवर्ड इस कोड में इस्तेमाल किया लिस्टबॉक्स कि हम खिड़की के रूप में इस्तेमाल करेगा बटन पर क्लिक करें जो भी में इस्तेमाल किया जाएगा द्वारा परिणाम देखने के लिए के लिए है खिड़की का रूप यहां किए गए सभी प्रोग्रामिंग बटन पर हैं। हालांकि

+1

आपको उपरोक्त कोड को केवल फ़ॉर्मों तक ही सीमित नहीं करना चाहिए। क्या आप वास्तव में समझते हैं कि कितने संचालनों को केवल इस पंक्ति 'ListBox1.Items.Add (...)' को समाप्त करने की आवश्यकता है? यह एल्गोरिदम के लिए एक बहुत धीमी गति से नीचे है। सभी ऑपरेशन शामिल किए गए उपयोगकर्ता इंटरफ़ेस के बिना प्रोसेसर और मेमोरी के बीच होना चाहिए था। – CodeArtist

4

सर्वश्रेष्ठ उत्तर प्रश्न मालिक द्वारा चुना जाता है, लेकिन अभी भी मैं दांतेदार सरणी अधिक स्पष्ट बनाने के लिए निम्न कोड प्रस्तुत करना चाहते हैं।

using System; 

class Program 
{ 
static void Main() 
{ 
// Declare local jagged array with 3 rows. 
int[][] jagged = new int[3][]; 

// Create a new array in the jagged array, and assign it. 
jagged[0] = new int[2]; 
jagged[0][0] = 1; 
jagged[0][1] = 2; 

// Set second row, initialized to zero. 
jagged[1] = new int[1]; 

// Set third row, using array initializer. 
jagged[2] = new int[3] { 3, 4, 5 }; 

// Print out all elements in the jagged array. 
for (int i = 0; i < jagged.Length; i++) 
    { 
    int[] innerArray = jagged[i]; 
    for (int a = 0; a < innerArray.Length; a++) 
    { 
    Console.Write(innerArray[a] + " "); 
    } 
    Console.WriteLine(); 
    } 
} 
} 

व्यवहृत किया जा सकेगा

1 2 

0 

3 4 5 

दांतेदार सरणियों लंबाई बदलती की पंक्तियों में डेटा संग्रहीत किया जाता है।

अधिक जानकारी के लिए this post at MSDN blog देखें।

2

एक दांतेदार सरणी एक है जिसमें आप घोषणा के दौरान पंक्तियों की संख्या की घोषणा है, लेकिन आप रन टाइम के दौरान या भी उपयोगकर्ता विकल्प है, बस अपने मतलब स्तंभों की संख्या को घोषित जब आप प्रत्येक दांतेदार सरणी में स्तंभ की विभिन्न संख्या चाहते हैं उपयुक्त है उस मामले में

int[][] a = new int[6][];//its mean num of row is 6 
     int choice;//thats i left on user choice that how many number of column in each row he wanna to declare 

     for (int row = 0; row < a.Length; row++) 
     { 
      Console.WriteLine("pls enter number of colo in row {0}", row); 
      choice = int.Parse(Console.ReadLine()); 
      a[row] = new int[choice]; 
      for (int col = 0; col < a[row].Length; col++) 
      { 
       a[row][col] = int.Parse(Console.ReadLine()); 
      } 
     } 
0

जालीदार ऐरे कई अलग-अलग पंक्तियों के साथ बहुआयामी सरणी है।

+1

Yoru उत्तर वही चीजें बता रहा है जो 2010 के बाद से अन्य उत्तरों बताए गए हैं - इसलिए आप मूल्य के कुछ भी नहीं जोड़ रहे हैं। –

संबंधित मुद्दे