System.Array trong C# là gì

System Array Trong C La Gi



C# hỗ trợ việc sử dụng mảng làm cấu trúc dữ liệu, cho phép chúng ta lưu trữ một tập hợp các phần tử cùng loại theo thứ tự tuần tự có kích thước cố định. Tất cả các thuộc tính mảng trong C# đều bắt nguồn từ Hệ thống.Array lớp, đóng vai trò là lớp cơ sở cho các kiểu mảng.

Vì nó là một lớp cơ sở trừu tượng, nên việc tạo một thể hiện của lớp System.Array một cách trực tiếp là không thể. Thay vào đó, chúng ta có thể tạo các thể hiện của một trong các lớp bắt nguồn từ System.Array. Tất cả các kiểu mảng trong C# đều dựa trên System.Array.

Ngoài mảng một chiều, C# còn có mảng nhiều chiều và mảng răng cưa. Một mảng nhiều chiều có nhiều hoặc lớn hơn một chiều. Trong một mảng răng cưa, mỗi phần tử có thể là một mảng có kích thước khác nhau. Nói một cách đơn giản, một mảng lởm chởm là một mảng của các mảng.







Lớp System.Array được sử dụng để làm gì

Lớp System.Array cung cấp các phương thức và thuộc tính khác nhau để thao tác với mảng trong C#. Các phương thức này cho phép chúng ta đọc và sửa đổi các giá trị được lưu trữ trong một mảng, nhận thông tin về kích thước và hình dạng của một mảng và tìm kiếm các phần tử trong một mảng.



Một số phương pháp phổ biến bao gồm GetValue(), SetValue(), GetLength() và IndexOf(). Các Hệ thống.Array class cũng cho phép chúng ta sắp xếp, tìm kiếm và thao tác với các mảng khác nhau.



Ví dụ, để có được chiều dài mảng, thuộc tính chiều dài Được sử dụng. Các Xếp hạng thuộc tính có thể trả về tổng kích thước có trong một mảng. Các Thuộc tính GetLength đưa ra độ dài của một thứ nguyên cụ thể trong một mảng nhiều chiều.





Phương thức và thuộc tính trong System.Array C#

Dưới đây là một số phương thức và thuộc tính được sử dụng trong System.Array C#:

Thông thoáng(): Đây là một phương pháp có sẵn cho công chúng và có thể được truy cập từ bất kỳ phần nào của mã. Phương pháp này có thể đặt một phạm vi phần tử cụ thể trong một mảng thành tham chiếu null hoặc bằng không.



Sao chép(): Đây là một phương thức chia sẻ công khai có thể bị quá tải và được sử dụng để sao chép một phần cụ thể của các phần tử từ mảng này sang mảng khác.

Lấy độ dài(): Nó trả về một số nguyên 32 bit hiển thị tổng số phần tử trong một chiều cụ thể của một mảng.

GetLongLength(): Phương thức này trả về một số nguyên 64 bit, cho chúng ta tổng các phần tử trong một chiều cụ thể của mảng.

GetLowerBound(): Phương thức này truy xuất giới hạn dưới của một chiều cụ thể của mảng, bắt đầu từ chỉ số 0.

GetUpperBound(): Phương thức này truy xuất giới hạn trên của một chiều cụ thể của mảng, bắt đầu từ chỉ số 0.

GetValue(): Phương thức này lấy giá trị của một phần tử cụ thể trong mảng, bắt đầu từ chỉ mục 1.

Chỉ số(): Đây là một phương thức chia sẻ công khai có thể được nạp chồng để trả về chỉ mục hoặc phần bù của lần xuất hiện đầu tiên của một giá trị cụ thể trong mảng một chiều.

IsFixedSize(): Phương thức này cho biết một mảng có kích thước cố định hay không.

IsReadOnly(): Phương thức này đưa ra một giá trị cho biết một mảng có ở chế độ chỉ đọc hay không.

Lần IndexOf(): Đây là một phương thức chia sẻ công khai có thể bị quá tải. Nó đưa ra chỉ số về lần xuất hiện cuối cùng của một giá trị trong mảng một chiều.

Chiều dài(): Phương thức này cho độ dài của mảng. Nó là thuộc tính công khai và xuất ra giá trị số nguyên 32 bit.

Độ dài (): Phương thức này cho biết các phần tử trong tất cả các chiều của mảng. Nó trả về một giá trị số nguyên 64 bit.

Thứ hạng(): Phương thức này trả về số chiều mà mảng có.

Thay đổi kích thước(): Phương thức này thay đổi kích thước một mảng thành số phần tử đã chỉ định.

Đảo ngược(): Phương thức này có thể đảo ngược thứ tự phần tử trong mảng một chiều.

Loại(): Phương thức này sắp xếp các phần tử trong mảng một chiều theo thứ tự tăng dần hoặc giảm dần tùy thuộc vào giá trị của chúng.

Mã ví dụ

Đoạn mã dưới đây khởi tạo một mảng các số nguyên và thể hiện nhiều Hệ thống.Array các phương thức có thể được sử dụng với mảng trong C#. Đầu ra của mỗi phương pháp được hiển thị riêng trên bàn điều khiển.

sử dụng Hệ thống ;
chương trình lớp học
{
tĩnh khoảng trống Chủ yếu ( sợi dây [ ] tranh luận )
{
// Khởi tạo một mảng các số nguyên
int [ ] con số = { 1 , 2 , 3 , 4 , 5 } ;


// Xóa nội dung của mảng

Mảng. Thông thoáng ( con số , 0 , con số. Chiều dài ) ;

Bảng điều khiển. ViếtDòng ( 'Mảng sau khi xóa:' ) ;

( int Tôi = 0 ; Tôi < con số. Chiều dài ; Tôi ++ )

{

Bảng điều khiển. Viết ( con số [ Tôi ] + '' ) ;

}

Bảng điều khiển. ViếtDòng ( ) ;

// Sao chép nội dung của một mảng khác vào nums

int [ ] sốSao chép = { 7 , số 8 , 9 } ;

Mảng. Sao chép ( sốSao chép , con số , numsCopy. Chiều dài ) ;

Bảng điều khiển. ViếtDòng ( 'Mảng sau khi sao chép:' ) ;

( int Tôi = 0 ; Tôi < con số. Chiều dài ; Tôi ++ )

{

Bảng điều khiển. Viết ( con số [ Tôi ] + '' ) ;

}

Bảng điều khiển. ViếtDòng ( ) ;

// Lấy chiều dài và chiều dài của mảng

int chiều dài = con số. Nhận chiều dài ( 0 ) ;

dài chiều dài = con số. GetLongLength ( 0 ) ;

Bảng điều khiển. ViếtDòng ( 'Chiều dài của mảng:' + chiều dài ) ;

Bảng điều khiển. ViếtDòng ( 'Độ dài của mảng:' + chiều dài ) ;

// Lấy cận dưới và cận trên của mảng

int chặn dưới = con số. GetLowerBound ( 0 ) ;

int giới hạn trên = con số. GetUpperBound ( 0 ) ;

Bảng điều khiển. ViếtDòng ( 'Cận dưới của mảng:' + chặn dưới ) ;

Bảng điều khiển. ViếtDòng ( 'Giới hạn trên của mảng:' + giới hạn trên ) ;

// Lấy giá trị tại một chỉ mục cụ thể trong mảng

int giá trịAtIndex = ( int ) con số. Nhận giá trị ( 1 ) ;

Bảng điều khiển. ViếtDòng ( 'Giá trị tại chỉ số 1:' + giá trịAtIndex ) ;

// Tìm chỉ số của một giá trị cụ thể trong mảng

int indexOfValue = Mảng. Chỉ số ( con số , 9 ) ;

Bảng điều khiển. ViếtDòng ( 'Chỉ số giá trị 9:' + indexOfValue ) ;

// Kiểm tra xem mảng có kích thước cố định và chỉ đọc không

bool isFixedSize = con số. Kích thước cố định ;

bool isReadOnly = con số. chỉ được đọc ;

Bảng điều khiển. ViếtDòng ( 'Có kích thước cố định không?' + isFixedSize ) ;

Bảng điều khiển. ViếtDòng ( 'Là chỉ đọc?' + isReadOnly ) ;

// Tìm chỉ số cuối cùng của một giá trị cụ thể trong mảng

int lastIndexOfValue = Mảng. Chỉ mục cuối cùng của ( con số , 9 ) ;

Bảng điều khiển. ViếtDòng ( 'Chỉ số cuối cùng của giá trị 9:' + lastIndexOfValue ) ;

// Lấy độ dài của mảng

int chiều dàiMột lần nữa = con số. Chiều dài ;

Bảng điều khiển. ViếtDòng ( 'Độ dài của mảng một lần nữa:' + chiều dàiMột lần nữa ) ;

// Lấy thứ hạng của mảng

int thứ hạng = con số. Thứ hạng ;

Bảng điều khiển. ViếtDòng ( 'Thứ hạng của mảng:' + thứ hạng ) ;

// Thay đổi kích thước mảng

Mảng. Thay đổi kích thước ( số giới thiệu , 10 ) ;



// Đảo ngược nội dung của mảng

Mảng. Đảo ngược ( con số ) ;

Bảng điều khiển. ViếtDòng ( 'Mảng sau khi đảo ngược:' ) ;

( int Tôi = 0 ; Tôi < con số. Chiều dài ; Tôi ++ )

{

Bảng điều khiển. Viết ( con số [ Tôi ] + '' ) ;

}

Bảng điều khiển. ViếtDòng ( ) ;



// Sắp xếp nội dung của mảng

Mảng. Loại ( con số ) ;

Bảng điều khiển. ViếtDòng ( 'Mảng sau khi sắp xếp:' ) ;

( int Tôi = 0 ; Tôi < con số. Chiều dài ; Tôi ++ )

{

Bảng điều khiển. Viết ( con số [ Tôi ] + '' ) ;

}

}

}

đầu ra

Phần kết luận

Lớp System.Array trong C# cung cấp nền tảng để làm việc với các kiểu mảng. Cho dù chúng ta cần tạo một mảng một chiều đơn giản hay một mảng nhiều chiều phức tạp, lớp System.Array cung cấp các phương thức khác nhau để thao tác và làm việc với dữ liệu một cách hiệu quả. Để biết mô tả chi tiết về System.Array trong C#, hãy đọc bài viết.