เนื่องจากเป็นคลาสฐานนามธรรม การสร้างอินสแตนซ์ของคลาส System.Array โดยตรงจึงเป็นไปไม่ได้ แต่เราสามารถสร้างอินสแตนซ์ของหนึ่งในคลาสที่ได้รับจาก System.Array ประเภทอาร์เรย์ทั้งหมดใน C# ขึ้นอยู่กับ System.Array
นอกจากอาร์เรย์มิติเดียวแล้ว C# ยังมีอาร์เรย์หลายมิติและอาร์เรย์หยัก อาร์เรย์หลายมิติมีหลายมิติหรือมากกว่าหนึ่งมิติ ในอาร์เรย์หยัก แต่ละองค์ประกอบสามารถเป็นอาร์เรย์ที่มีขนาดต่างกันได้ พูดง่ายๆ อาร์เรย์หยักเป็นอาร์เรย์ของอาร์เรย์
System.Array Class ใช้สำหรับอะไร
คลาส System.Array มีเมธอดและคุณสมบัติต่างๆ เพื่อจัดการอาร์เรย์ใน C# เมธอดเหล่านี้ช่วยให้เราสามารถอ่านและแก้ไขค่าที่จัดเก็บไว้ในอาร์เรย์ รับข้อมูลเกี่ยวกับขนาดและรูปร่างของอาร์เรย์ และค้นหาองค์ประกอบในอาร์เรย์
วิธีการทั่วไปบางอย่าง ได้แก่ GetValue(), SetValue(), GetLength() และ IndexOf() เดอะ System.Array คลาสยังช่วยให้เราสามารถจัดเรียง ค้นหา และจัดการอาร์เรย์ต่างๆ
ตัวอย่างเช่น เพื่อให้ได้ความยาวของอาร์เรย์ คุณสมบัติความยาว ถูกนำมาใช้. เดอะ ทรัพย์สินอันดับ สามารถส่งคืนขนาดทั้งหมดที่มีอยู่ในอาร์เรย์ เดอะ คุณสมบัติ GetLength ให้ความยาวของมิติเฉพาะในอาร์เรย์หลายมิติ
วิธีการและคุณสมบัติใน System.Array C#
ต่อไปนี้เป็นวิธีการและคุณสมบัติบางประการที่ใช้ใน System.Array C#:
ชัดเจน(): นี่เป็นวิธีการที่มีให้สำหรับสาธารณะและสามารถเข้าถึงได้จากส่วนใดก็ได้ของรหัส วิธีนี้สามารถตั้งค่าช่วงขององค์ประกอบเฉพาะภายในอาร์เรย์ให้เป็นค่าอ้างอิงว่างหรือศูนย์
สำเนา(): นี่เป็นวิธีสาธารณะที่สามารถโอเวอร์โหลดและใช้เพื่อคัดลอกส่วนเฉพาะขององค์ประกอบจากอาร์เรย์หนึ่งไปยังอาร์เรย์อื่น
รับความยาว (): ส่งกลับจำนวนเต็ม 32 บิตที่แสดงองค์ประกอบทั้งหมดในมิติเฉพาะของอาร์เรย์
GetLongLength(): เมธอดนี้ส่งคืนจำนวนเต็ม 64 บิต ซึ่งให้องค์ประกอบทั้งหมดในมิติเฉพาะของอาร์เรย์
GetLowerBound(): เมธอดนี้ดึงขอบเขตล่างของมิติเฉพาะของอาร์เรย์ โดยเริ่มต้นที่ดัชนี 0
GetUpperBound(): เมธอดนี้ดึงขอบเขตบนของมิติที่ระบุของอาร์เรย์ โดยเริ่มต้นที่ดัชนี 0
GetValue(): เมธอดนี้ดึงค่าขององค์ประกอบเฉพาะในอาร์เรย์ โดยเริ่มต้นที่ดัชนี 1
ดัชนีของ (): นี่เป็นวิธีสาธารณะที่สามารถโอเวอร์โหลดเพื่อส่งคืนดัชนีหรือออฟเซ็ตของการเกิดขึ้นครั้งแรกของค่าเฉพาะในอาร์เรย์หนึ่งมิติ
IsFixedSize(): วิธีนี้จะบอกว่าอาร์เรย์มีขนาดคงที่หรือไม่
เป็นแบบอ่านอย่างเดียว(): เมธอดนี้ให้ค่าที่บ่งบอกว่าอาร์เรย์เป็นแบบอ่านอย่างเดียวหรือไม่
LastIndexOf(): นี่เป็นวิธีสาธารณะที่สามารถโอเวอร์โหลดได้ มันให้ดัชนีของการเกิดขึ้นครั้งล่าสุดของค่าในอาร์เรย์หนึ่งมิติ
ความยาว(): วิธีนี้ให้ความยาวของอาร์เรย์ เป็นทรัพย์สินสาธารณะและส่งออกค่าจำนวนเต็ม 32 บิต
ความยาว (): วิธีนี้จะบอกองค์ประกอบในทุกมิติของอาร์เรย์ ส่งกลับค่าจำนวนเต็ม 64 บิต
อันดับ (): เมธอดนี้ส่งคืนจำนวนมิติที่อาร์เรย์มี
ปรับขนาด (): วิธีนี้จะปรับขนาดอาร์เรย์ตามจำนวนองค์ประกอบที่ระบุ
ย้อนกลับ(): วิธีนี้สามารถย้อนกลับลำดับองค์ประกอบในอาร์เรย์มิติเดียว
เรียงลำดับ(): วิธีนี้จะจัดเรียงองค์ประกอบในอาร์เรย์หนึ่งมิติโดยเรียงลำดับจากน้อยไปหามากหรือมากไปหาน้อยขึ้นอยู่กับค่า
ตัวอย่างโค้ด
รหัสด้านล่างเริ่มต้นอาร์เรย์ของจำนวนเต็มและสาธิตต่างๆ System.Array วิธีการที่สามารถใช้กับอาร์เรย์ใน C# ผลลัพธ์ของแต่ละวิธีจะแสดงแยกกันบนคอนโซล
ใช้ระบบ ;โปรแกรมคลาส
{
คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง )
{
// เริ่มต้นอาร์เรย์ของจำนวนเต็ม
นานาชาติ [ ] ตัวเลข = { 1 , 2 , 3 , 4 , 5 } ;
// ล้างเนื้อหาของอาร์เรย์
อาร์เรย์ ชัดเจน ( ตัวเลข , 0 , ตัวเลข ความยาว ) ;
คอนโซล เขียนไลน์ ( 'อาร์เรย์หลังจากการล้าง:' ) ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < ตัวเลข ความยาว ; ฉัน ++ )
{
คอนโซล เขียน ( ตัวเลข [ ฉัน ] + ' ' ) ;
}
คอนโซล เขียนไลน์ ( ) ;
// คัดลอกเนื้อหาของอาร์เรย์อื่นเป็นตัวเลข
นานาชาติ [ ] numsCopy = { 7 , 8 , 9 } ;
อาร์เรย์ สำเนา ( numsCopy , ตัวเลข , numsCopy. ความยาว ) ;
คอนโซล เขียนไลน์ ( 'อาร์เรย์หลังจากการคัดลอก:' ) ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < ตัวเลข ความยาว ; ฉัน ++ )
{
คอนโซล เขียน ( ตัวเลข [ ฉัน ] + ' ' ) ;
}
คอนโซล เขียนไลน์ ( ) ;
// รับความยาวและความยาวของอาร์เรย์
นานาชาติ ความยาว = ตัวเลข รับความยาว ( 0 ) ;
ยาว ความยาว = ตัวเลข GetLongLength ( 0 ) ;
คอนโซล เขียนไลน์ ( 'ความยาวของอาร์เรย์: ' + ความยาว ) ;
คอนโซล เขียนไลน์ ( 'ความยาวของอาร์เรย์: ' + ความยาว ) ;
// รับขอบเขตล่างและบนของอาร์เรย์
นานาชาติ ขอบล่าง = ตัวเลข รับขอบเขตล่าง ( 0 ) ;
นานาชาติ ขอบเขตบน = ตัวเลข รับ UpperBound ( 0 ) ;
คอนโซล เขียนไลน์ ( 'ขอบเขตล่างของอาร์เรย์: ' + ขอบล่าง ) ;
คอนโซล เขียนไลน์ ( 'ขอบเขตบนของอาร์เรย์: ' + ขอบเขตบน ) ;
// รับค่าที่ดัชนีเฉพาะในอาร์เรย์
นานาชาติ ค่าที่ดัชนี = ( นานาชาติ ) ตัวเลข รับค่า ( 1 ) ;
คอนโซล เขียนไลน์ ( 'มูลค่าที่ดัชนี 1: ' + ค่าที่ดัชนี ) ;
// ค้นหาดัชนีของค่าเฉพาะในอาร์เรย์
นานาชาติ ดัชนีของมูลค่า = อาร์เรย์ ดัชนีของ ( ตัวเลข , 9 ) ;
คอนโซล เขียนไลน์ ( 'ดัชนีค่า 9: ' + ดัชนีของมูลค่า ) ;
// ตรวจสอบว่าอาร์เรย์มีขนาดคงที่และอ่านอย่างเดียวหรือไม่
บูลคือFixedSize = ตัวเลข IsFixedSize ;
บูลเป็นแบบอ่านอย่างเดียว = ตัวเลข เป็นอ่านอย่างเดียว ;
คอนโซล เขียนไลน์ ( 'มีขนาดคงที่หรือไม่' + เป็นขนาดคงที่ ) ;
คอนโซล เขียนไลน์ ( 'เป็นแบบอ่านอย่างเดียว?' + เป็นอ่านอย่างเดียว ) ;
// ค้นหาดัชนีสุดท้ายของค่าเฉพาะในอาร์เรย์
นานาชาติ สุดท้ายดัชนีของค่า = อาร์เรย์ ดัชนีสุดท้ายของ ( ตัวเลข , 9 ) ;
คอนโซล เขียนไลน์ ( 'ดัชนีสุดท้ายของค่า 9: ' + สุดท้ายดัชนีของค่า ) ;
// รับความยาวของอาร์เรย์
นานาชาติ ความยาวอีกครั้ง = ตัวเลข ความยาว ;
คอนโซล เขียนไลน์ ( 'ความยาวของอาร์เรย์อีกครั้ง: ' + ความยาวอีกครั้ง ) ;
// รับอันดับของอาร์เรย์
นานาชาติ อันดับ = ตัวเลข อันดับ ;
คอนโซล เขียนไลน์ ( 'อันดับของอาร์เรย์: ' + อันดับ ) ;
// ปรับขนาดอาร์เรย์
อาร์เรย์ ปรับขนาด ( หมายเลขอ้างอิง , 10 ) ;
// ย้อนกลับเนื้อหาของอาร์เรย์
อาร์เรย์ ย้อนกลับ ( ตัวเลข ) ;
คอนโซล เขียนไลน์ ( 'อาร์เรย์หลังจากย้อนกลับ:' ) ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < ตัวเลข ความยาว ; ฉัน ++ )
{
คอนโซล เขียน ( ตัวเลข [ ฉัน ] + ' ' ) ;
}
คอนโซล เขียนไลน์ ( ) ;
// จัดเรียงเนื้อหาของอาร์เรย์
อาร์เรย์ เรียงลำดับ ( ตัวเลข ) ;
คอนโซล เขียนไลน์ ( 'อาร์เรย์หลังการเรียงลำดับ:' ) ;
สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < ตัวเลข ความยาว ; ฉัน ++ )
{
คอนโซล เขียน ( ตัวเลข [ ฉัน ] + ' ' ) ;
}
}
}
เอาต์พุต
บทสรุป
คลาส System.Array ใน C# เป็นพื้นฐานสำหรับการทำงานกับอาร์เรย์ทุกประเภท ไม่ว่าเราจะต้องสร้างอาร์เรย์หนึ่งมิติอย่างง่ายหรืออาร์เรย์หลายมิติที่ซับซ้อน คลาส System.Array มีวิธีการที่แตกต่างกันในการจัดการและทำงานกับข้อมูลอย่างมีประสิทธิภาพ สำหรับคำอธิบายโดยละเอียดของ System.Array ใน C# อ่านบทความ