วิธีเริ่มต้นอาร์เรย์ใน C#

Withi Reim Tn Xarrey Ni C



ใน C# อาร์เรย์ทำหน้าที่เป็นคอนเทนเนอร์สำหรับเก็บองค์ประกอบของข้อมูลประเภทเดียวกัน เมื่อสร้างอาร์เรย์ มีหลายวิธีในการเริ่มต้นอาร์เรย์ด้วยองค์ประกอบต่างๆ บทความนี้เจาะลึกวิธีการต่างๆ ในการเริ่มต้นอาร์เรย์ใน C# โดยให้การสำรวจแต่ละวิธีอย่างครอบคลุม

วิธีการเริ่มต้นอาร์เรย์ใน C#

อาร์เรย์เป็นโครงสร้างข้อมูลที่จำเป็นในการเขียนโปรแกรมคอมพิวเตอร์ที่ช่วยให้คุณสามารถจัดเก็บและจัดการคอลเลกชันขององค์ประกอบข้อมูลประเภทเดียวกันในตำแหน่งหน่วยความจำที่อยู่ติดกัน ต่อไปนี้เป็นวิธีการเริ่มต้นอาร์เรย์ใน C#:







1: การเริ่มต้นอาร์เรย์โดยใช้ไวยากรณ์ Initializer ของ Array

วิธีที่ง่ายที่สุดในการเริ่มต้นอาร์เรย์คือการใช้ไวยากรณ์ initializer ของอาร์เรย์ ซึ่งเกี่ยวข้องกับการปิดองค์ประกอบอาร์เรย์ในวงเล็บปีกกา คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น:



นานาชาติ [ ] ตัวเลข = { 1 , 2 , 3 , 4 , 5 } ;


ในโค้ดนี้ อาร์เรย์จำนวนเต็มชื่อ “numbers” จะถูกสร้างขึ้นและเริ่มต้นด้วยค่า 1 ถึง 5 ในทำนองเดียวกัน คุณสามารถใช้ไวยากรณ์เดียวกันเพื่อเริ่มต้นอาร์เรย์หลายมิติได้



นานาชาติ [ , ] myMultiDimensionalArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


นี่คือตัวอย่างรหัสที่ใช้ไวยากรณ์ initializer เพื่อเริ่มต้นอาร์เรย์ 1D และ 2D ใน C#:





ใช้ระบบ;

คลาสอาร์เรย์
{
โมฆะคงที่หลัก ( สตริง [ ] หาเรื่อง )
{
// การเริ่มต้นอาร์เรย์ 1D โดยใช้ไวยากรณ์ initializer
นานาชาติ [ ] อาร์เรย์1D = { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'ค่าใน array1D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < array1D.Length; ฉัน ++ ) {
Console.WriteLine ( อาร์เรย์1D [ ฉัน ] ) ;
}
// การเริ่มต้นอาร์เรย์ 2 มิติโดยใช้ไวยากรณ์ initializer
นานาชาติ [ , ] อาร์เรย์2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'ค่าใน array2D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < array2D.GetLength ( 0 ) ; ฉัน ++ ) {
สำหรับ ( int j = 0 ; เจ < array2D.GetLength ( 1 ) ; เจ++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , ผม , j , array2D [ ฉันเจ ] ) ;
}
}
}
}


ในโค้ดนี้ เราใช้ไวยากรณ์ initializer เพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 1 มิติที่เรียกว่า array1D ด้วยค่า 1, 2, 3, 4 และ 5

เรายังใช้ไวยากรณ์ initializer เพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า array2D ด้วยค่า {1, 2}, {3, 4} และ {5, 6}



จากนั้นเราจะใช้การวนซ้ำเพิ่มเติมเพื่อวนซ้ำแต่ละองค์ประกอบของแต่ละอาร์เรย์และพิมพ์ค่าของมันไปยังคอนโซล

2: การเริ่มต้นอาร์เรย์โดยใช้คำหลักใหม่

วิธีการเพิ่มเติมสำหรับการเริ่มต้นอาร์เรย์เกี่ยวข้องกับการใช้ ใหม่ คำสำคัญ. ซึ่งเกี่ยวข้องกับการระบุขนาดของอาร์เรย์ในวงเล็บเหลี่ยม ตามด้วยคีย์เวิร์ดใหม่ และประเภทข้อมูลขององค์ประกอบอาร์เรย์ ตัวอย่างเช่น:

นานาชาติ [ ] ตัวเลข = int ใหม่ [ 5 ] ;


รหัสนี้สร้างอาร์เรย์จำนวนเต็มชื่อตัวเลขที่มีขนาด 5 และเตรียมใช้งานองค์ประกอบทั้งหมดเป็นค่าเริ่มต้น ซึ่งเป็น 0 สำหรับอาร์เรย์จำนวนเต็ม

นี่คือไวยากรณ์สำหรับการเริ่มต้นอาร์เรย์หลายมิติโดยใช้คีย์เวิร์ดใหม่ใน C#:

< พิมพ์ > [ , ] < ชื่ออาร์เรย์ > = ใหม่ < พิมพ์ > [ < ความยาว1 > , < ความยาว2 > , ... ] { { < ค่าเริ่มต้น > } } ;


ในไวยากรณ์นี้ เป็นชนิดข้อมูลขององค์ประกอบอาร์เรย์ เป็นชื่อของอาร์เรย์ , และอื่นๆ คือความยาวของอาร์เรย์ในแต่ละมิติ และ เป็นค่าเริ่มต้นขององค์ประกอบอาร์เรย์

ต่อไปนี้คือตัวอย่างวิธีใช้ไวยากรณ์นี้เพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติ:

นานาชาติ [ , ] myArray = int ใหม่ [ 3 , 2 ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


ในตัวอย่างนี้ เรากำลังเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า myArray โดยมี 3 แถวและ 2 คอลัมน์โดยใช้คีย์เวิร์ดใหม่ เรายังให้ค่าเริ่มต้นสำหรับแต่ละองค์ประกอบของอาร์เรย์โดยใช้ไวยากรณ์วงเล็บปีกกาคู่ ค่าคือ {1, 2}, {3, 4} และ {5, 6} ซึ่งสอดคล้องกับองค์ประกอบในแต่ละแถว

ต่อไปนี้คือตัวอย่างวิธีใช้คีย์เวิร์ดใหม่เพื่อเริ่มต้นทั้งอาร์เรย์ 1 มิติและ 2 มิติใน C# พร้อมกับโค้ดสำหรับพิมพ์ค่าในแต่ละอาร์เรย์:

ใช้ระบบ;

คลาสอาร์เรย์
{
โมฆะคงที่หลัก ( สตริง [ ] หาเรื่อง )
{
// กำลังเริ่มต้น ก 1 อาร์เรย์มิติ
นานาชาติ [ ] myArray1D = int ใหม่ [ ] { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'ค่าใน myArray1D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < myArray1D.Length; ฉัน ++ )
{
Console.WriteLine ( myArray1D [ ฉัน ] ) ;
}
// กำลังเริ่มต้น ก 2 อาร์เรย์มิติ
นานาชาติ [ , ] myArray2D = int ใหม่ [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'ค่าใน myArray2D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < myArray2D.GetLength ( 0 ) ; ฉัน ++ )
{
สำหรับ ( int j = 0 ; เจ < myArray2D.GetLength ( 1 ) ; เจ++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , ฉัน, เจ, myArray2D [ ฉันเจ ] ) ;
}
}
}
}


ในโค้ดนี้ เรากำลังใช้คีย์เวิร์ดใหม่เพื่อเริ่มต้นอาร์เรย์จำนวนเต็มหนึ่งมิติที่เรียกว่า myArray1D ด้วยค่า 1, 2, 3, 4 และ 5 และอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า myArray2D โดยมีค่า {1, 2}, {3, 4} และ {5, 6}

จากนั้นเราจะใช้ for วนซ้ำเพื่อวนซ้ำแต่ละองค์ประกอบของแต่ละอาร์เรย์และพิมพ์ค่าของมันไปยังคอนโซล โปรดทราบว่าเราใช้อาร์เรย์ 2 มิติ รับความยาว () เพื่อกำหนดจำนวนแถวและคอลัมน์ และใช้การวนซ้ำที่ซ้อนกันเพื่อวนซ้ำผ่านแต่ละองค์ประกอบ

3: การเริ่มต้นอาร์เรย์โดยใช้ลูป

อาร์เรย์สามารถเริ่มต้นได้โดยใช้ลูป วิธีหนึ่งคือการใช้ for ลูป ซึ่งช่วยให้คุณสามารถวนซ้ำผ่านอาร์เรย์และกำหนดค่าให้กับแต่ละองค์ประกอบ

นานาชาติ [ ] ตัวเลข = int ใหม่ [ 5 ] ;
สำหรับ ( int ฉัน = 0 ; ฉัน < ตัวเลขความยาว; ฉัน ++ )
{
ตัวเลข [ ฉัน ] = ฉัน + 1 ;
}


รหัสนี้สร้างอาร์เรย์จำนวนเต็มชื่อตัวเลขที่มีขนาด 5 และกำหนดค่าแต่ละองค์ประกอบเท่ากับดัชนีบวก 1 ต่อไปนี้คือตัวอย่างวิธีเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติใน C# โดยใช้ลูป:

นานาชาติ [ , ] myArray = int ใหม่ [ 3 , 2 ] ;
สำหรับ ( int ฉัน = 0 ; ฉัน < 3 ; ฉัน ++ )
{
สำหรับ ( int j = 0 ; เจ < 2 ; เจ++ )
{
myArray [ ฉันเจ ] = ฉัน + เจ;
}
}


ในตัวอย่างนี้ เราใช้การวนซ้ำซ้อนกันเพื่อวนซ้ำผ่านแต่ละองค์ประกอบของอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า myArray ซึ่งมี 3 แถว 2 คอลัมน์ สำหรับแต่ละองค์ประกอบ เรากำลังตั้งค่าเป็นผลรวมของดัชนีแถวและคอลัมน์โดยใช้นิพจน์ i + j

นี่คือตัวอย่างการใช้ลูปเพื่อเริ่มต้นทั้งอาร์เรย์ 1 มิติและ 2 มิติใน C# พร้อมกับโค้ดสำหรับพิมพ์ค่าในแต่ละอาร์เรย์:

ใช้ระบบ;

คลาสอาร์เรย์
{
โมฆะคงที่หลัก ( สตริง [ ] หาเรื่อง )
{
// กำลังเริ่มต้น ก 1 อาร์เรย์มิติโดยใช้การวนซ้ำ
นานาชาติ [ ] myArray1D = int ใหม่ [ 5 ] ;
สำหรับ ( int ฉัน = 0 ; ฉัน < myArray1D.Length; ฉัน ++ )
{
myArray1D [ ฉัน ] = ฉัน + 1 ;
}
Console.WriteLine ( 'ค่าใน myArray1D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < myArray1D.Length; ฉัน ++ )
{
Console.WriteLine ( myArray1D [ ฉัน ] ) ;
}
// กำลังเริ่มต้น ก 2 อาร์เรย์มิติโดยใช้ลูปที่ซ้อนกัน
นานาชาติ [ , ] myArray2D = int ใหม่ [ 3 , 2 ] ;
สำหรับ ( int ฉัน = 0 ; ฉัน < 3 ; ฉัน ++ )
{
สำหรับ ( int j = 0 ; เจ < 2 ; เจ++ )
{
myArray2D [ ฉันเจ ] = ฉัน + เจ;
}
}
Console.WriteLine ( 'ค่าใน myArray2D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < 3 ; ฉัน ++ )
{
สำหรับ ( int j = 0 ; เจ < 2 ; เจ++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , ฉัน, เจ, myArray2D [ ฉันเจ ] ) ;
}
}
}
}


ในโค้ดนี้ เราใช้ for วนซ้ำเพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 1 มิติที่เรียกว่า myArray1D โดยมีค่า 1, 2, 3, 4 และ 5 เรายังใช้การวนซ้ำแบบซ้อนเพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า myArray2D ที่มีค่า {0, 1}, {1, 2} และ {2, 3} โดยใช้นิพจน์ i + j

จากนั้นใช้การวนซ้ำเพิ่มเติมเพื่อวนซ้ำแต่ละองค์ประกอบของแต่ละอาร์เรย์และพิมพ์ค่าไปยังคอนโซล

4: การเริ่มต้นอาร์เรย์โดยใช้ Array.Copy()

อีกวิธีหนึ่งในการเริ่มต้นอาร์เรย์คือการใช้ฟังก์ชัน Array.Copy() สิ่งนี้เกี่ยวข้องกับการสร้างอาร์เรย์ต้นทางด้วยองค์ประกอบที่ต้องการแล้วคัดลอกไปยังอาร์เรย์เป้าหมาย ตัวอย่างเช่น:

นานาชาติ [ ] แหล่งที่มา = { 1 , 2 , 3 , 4 , 5 } ;
นานาชาติ [ ] เป้าหมาย = int ใหม่ [ ที่มา ความยาว ] ;
Array.Copy ( แหล่งที่มา , เป้าหมาย, แหล่งที่มา ความยาว ) ;


รหัสนี้สร้างอาร์เรย์จำนวนเต็มชื่อต้นทางที่มีค่าตั้งแต่ 1 ถึง 5 สร้างอาร์เรย์จำนวนเต็มใหม่ชื่อเป้าหมายที่มีขนาดเท่ากับต้นทาง จากนั้นคัดลอกองค์ประกอบจากต้นทางไปยังเป้าหมาย

ให้ฉันนำเสนอตัวอย่างสาธิตการใช้ Array.Copy เพื่อเริ่มต้นอาร์เรย์จำนวนเต็มสองมิติใน C#:

นานาชาติ [ , ] ซอร์สอาร์เรย์ = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
นานาชาติ [ , ] DestinationArray = int ใหม่ [ 3 , 2 ] ;

Array.Copy ( sourceArray, destinationArray, sourceArray.Length ) ;


ในตัวอย่างนี้ เรามีอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า อาร์เรย์แหล่งที่มา มี 3 แถว 2 คอลัมน์ เรากำลังใช้ Array.Copy() เพื่อคัดลอกเนื้อหาของ sourceArray ลงในอาร์เรย์จำนวนเต็ม 2 มิติใหม่ที่เรียกว่า destinationArray ซึ่งมี 3 แถวและ 2 คอลัมน์

เดอะ Array.Copy() วิธีการใช้เวลา สามข้อโต้แย้ง : เดอะ อาร์เรย์แหล่งที่มา , อาร์เรย์ปลายทาง , และ ความยาว ของข้อมูลที่จะคัดลอก ในกรณีนี้ เรากำลังคัดลอกเนื้อหาทั้งหมดของ อาร์เรย์แหล่งที่มา เข้าไปข้างใน อาร์เรย์ปลายทาง ดังนั้นเราจึงผ่าน sourceArray.Length เป็นอาร์กิวเมนต์ที่สาม

โปรดทราบว่าคุณสามารถใช้ Array.Copy() เพื่อเริ่มต้นอาร์เรย์ด้วยจำนวนมิติเท่าใดก็ได้ ตราบใดที่อาร์เรย์ต้นทางและปลายทางมีจำนวนมิติเท่ากันและมีขนาดเท่ากันในแต่ละมิติ

นอกจากนี้ โปรดจำไว้ว่า Array.Copy() ทำการคัดลอกอาร์เรย์ต้นทางแบบตื้นๆ ซึ่งหมายความว่าหากอาร์เรย์ต้นทางมีประเภทการอ้างอิง การอ้างอิงจะถูกคัดลอกแต่ตัววัตถุเองจะไม่ถูกทำซ้ำ

นี่คือรหัสที่สมบูรณ์ที่ใช้ Array.Copy() ฟังก์ชันเพื่อเริ่มต้นอาร์เรย์ใน C#:

ใช้ระบบ;

คลาสอาร์เรย์
{
โมฆะคงที่หลัก ( สตริง [ ] หาเรื่อง )
{
// กำลังเริ่มต้น ก 1 อาร์เรย์มิติโดยใช้ Array.Copy
นานาชาติ [ ] sourceArray1D = { 1 , 2 , 3 , 4 , 5 } ;
นานาชาติ [ ] DestinationArray1D = int ใหม่ [ 5 ] ;
Array.Copy ( sourceArray1D, destinationArray1D, sourceArray1D.Length ) ;
Console.WriteLine ( 'ค่าใน destinationArray1D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < DestinationArray1D.Length; ฉัน ++ ) {
Console.WriteLine ( DestinationArray1D [ ฉัน ] ) ;
}
// กำลังเริ่มต้น ก 2 อาร์เรย์มิติโดยใช้ Array.Copy
นานาชาติ [ , ] sourceArray2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
นานาชาติ [ , ] DestinationArray2D = int ใหม่ [ 3 , 2 ] ;
Array.Copy ( sourceArray2D, destinationArray2D, sourceArray2D.Length ) ;
Console.WriteLine ( 'ค่าใน destinationArray2D:' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน < DestinationArray2D.GetLength ( 0 ) ; ฉัน ++ ) {
สำหรับ ( int j = 0 ; เจ < DestinationArray2D.GetLength ( 1 ) ; เจ++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, destinationArray2D [ ฉันเจ ] ) ;
}
}
}
}


ในรหัสนี้เรากำลังใช้ Array.Copy() เพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 1 มิติที่เรียกว่า destinationArray1D ด้วยค่า 1, 2, 3, 4 และ 5 จากอาร์เรย์ต้นทางที่เรียกว่า sourceArray1D

เรายังใช้ Array.Copy() เพื่อเริ่มต้นอาร์เรย์จำนวนเต็ม 2 มิติที่เรียกว่า destinationArray2D ด้วยค่า {1, 2}, {3, 4} และ {5, 6} จากอาร์เรย์ต้นทางที่เรียกว่า sourceArray2D

จากนั้นเราจะใช้การวนซ้ำเพิ่มเติมเพื่อวนซ้ำแต่ละองค์ประกอบของแต่ละอาร์เรย์และพิมพ์ค่าของมันไปยังคอนโซล

บทสรุป

ในบทความนี้ เราได้สำรวจวิธีต่างๆ ในการเริ่มต้นอาร์เรย์ใน C# เราได้กล่าวถึงไวยากรณ์ initializer ของอาร์เรย์ โดยใช้คีย์เวิร์ดใหม่ การเริ่มต้นอาร์เรย์โดยใช้ลูป และการใช้เมธอด Array.Copy() แต่ละวิธีเหล่านี้มีข้อดีและข้อเสียที่แตกต่างกันไป ขึ้นอยู่กับกรณีการใช้งานเฉพาะ การทำความคุ้นเคยกับแนวทางที่หลากหลายเหล่านี้จะช่วยให้คุณเลือกแนวทางที่เหมาะสมที่สุดสำหรับความต้องการเฉพาะของคุณได้