Mảng Trong Lập Trình C Sharp
Có thể bạn quan tâm
- Khai báo mảng
- Khởi tạo mảng
- Truy cập các phần tử mảng
- Thuộc tính và phương thức của đối tượng mảng
- Duyệt qua các phần tử mảng
- Mảng nhiều chiều
- Mảng trong mảng jagged
Mảng - Khai báo mảng trong C#
Mảng là một cấu trúc dữ liệu được sử dụng dụng để lưu trữ một tập dữ liệu cùng kiểu. Ví dụ, bạn có 50 biến kiểu int chúng là những mã số sinh viên chẳng hạn, nếu không dùng mảng thì bạn cần khai báo và nhớ 50 biến kiểu int. Thay vì 50 biến khác nhau đó, hãy tập hợp chúng lại lưu vào một biến mảng kiểu int có 50 phần tử.
Cú pháp khai báo biến mảng là chỉ ra kiểu phần tử mảng - tiếp theo là ký hiệu []
int[] bienMang; // khai báo biến mảng kiểu phần tử là int (chưa khởi tạo)Khởi tạo mảng
Muốn khởi tạo một đối tượng mảng để gán vào biến mảng thì thực hiện như sau, ví dụ sau khởi tạo ra đối tượng mảng kiểu int, có 5 phần tử
bienMang = new int[5]; // có thể khởi tạo ngay khi khai báo int[] bienMang = new int[5]; string[] studentNames = new string[10];Khởi tạo new datatype[n] tạo ra mảng có kiểu datatype và có thể lưu n phần tử
Khi khởi tạo - nó tạo ra mảng có số phần tử chỉ định, các phần tử của mảng có giá trị khởi tạo mặc định tùy vào kiểu dữ liệu sau đó bạn có thể cần gán giá trị lưu trữ trong các phần tử (nói ngay sau đây). C# hỗ trợ ngay khi khởi tạo mảng ta gán luôn các giá trị cụ thể vào mảng bằng cách mở ra ký hiệu {} trong nó liệt kê các giá trị lưu trữ của mảng.
Ví dụ:
// mảng 3 phần tử chuỗi ký tự, mỗi phần tử được gán ngay giá trị chuỗi cụ thể string[] productNames = new string[3] {"Iphone", "Samsung", "Nokia"}; // mảng 3 phần tử double, mỗi phần tử được gán giá trị luôn double[] productPrices = new double[3] {100, 200.5, 10.1};Khi mảng được báo và khởi tạo luôn như vậy, không nhất thiết chỉ ra số lương phần tử ở [], vì số lượng phần tử sẽ lấy theo số giá trị khởi tạo trong {}, viết như sau là tương đương phần trên
string[] productNames = new string[] {"Iphone", "Samsung", "Nokia"}; double[] productPrices = new double[] {100, 200.5, 10.1};Cách này thậm chỉ còn bỏ luôn cả toán tử new thì nó cũng ngầm định sử dụng khởi tạo như trên
string[] productNames = {"Iphone", "Samsung", "Nokia"}; double[] productPrices = {100, 200.5, 10.1}; Các giá trị khởi tạo gán cho phần tử mảng được liệt kế cách nhau bởi , và đặt trong {}Truy cập phần tử mảng
Các phần tử mảng được truy cập thông qua ký hiệu biến-mảng[chỉ-số], trong đó chỉ-số là thứ tự của phần tử trong mảng, các phần tử mảng có chỉ số từ 0 trở đi.
int[] myArray = {1,3,5,19};chỉ số | [0] | [1] | [2] | [3] |
giá trị phần tử | 1 | 3 | 5 | 19 |
Thuộc tính và phương thức đối tượng mảng
Các biến mảng thực chất được tạo ra từ lớp có lơps cơ sở là System.Array, nên nó có các thuộc tính phương thức của lớp này. Một số thuộc tính và phương thức như sau:
Member | Nội dung |
---|---|
Length | Thuộc tính cho biết số lượng phần tử trong mảng |
Rank | Thuộc tính cho biết số chiều mảng |
Clone() | Copy (nhân bản) đối tượng mảng |
GetValue(index) | Lấy giá trị phần tử trong mảng |
Min() | Trả về giá trị nhỏ nhất trong mảng |
Max() | Trả về giá trị lớn nhất trong mảng |
Sum() | Trả về giá trị tổng cộng các phần tử |
Chú ý cần nạp thư viện Linq bằng using System.Linq; ở đầu để có phương thức Max(), Min(), Sum()
Một số phương thức tĩnh trong Array áp dụng vào mảng như:
Member | Nội dung |
---|---|
Array.BinarySearch(array, value) | Tìm kiếm phần tử trong mảng đã được sắp xếp, trả về chỉ số nếu tìm thấy |
CopyTo(array, indexStart) | Sao chép phần tử mảng này sang mảng khác |
Array.Clear(array, index, length) | Thiết lập phần tử mảng nhận giá trị mặc định |
bool Exists<T> (array, Predicate<T> match); | Kiểm tra có phần tử trong mảng thỏa mãn match |
Fill<T> (array, value); | Gán các phần tử của mảng bằng value |
T Find<T> (array, Predicate<T> match); | Tìm phần tử mảng |
int FindIndex<T> (array, Predicate<T> match); | Tìm phần tử mảng, trả về chỉ số nếu thấy |
T[] FindAll<T> (array, Predicate<T> match); | Tìm tất cả phần tử mảng |
int IndexOf(array, value) | Tìm chỉ số của phần tử |
ForEach(array, Action<T> action) | Thi hành action trên mỗi phần tử |
Sort(array) | Sắp xếp |
Ví dụ, duyệt qua các phần tử mảng kiểu int, và in ra nội dung phần tử
static void testForEach() { int[] numbers = {9, 8, 7, 6, 5, 4, 3, 2, 1 }; Array.ForEach<int>(numbers, (int n) => { Console.WriteLine(n); }); }Ví dụ, tìm các số chẵn (chia hết cho 2) trong mảng số nguyên rồi in kết quả tìm được
static void testFindAll() { int[] numbers = {9, 8, 7, 6, 5, 4, 3, 2, 1 }; // Định nghĩa Predicate là một delegate tham số kiểu int // trả về true nếu số chia hết cho 2 Predicate<int> predicate = (int number) => { return number % 2 == 0; }; // Tìm các số chẵn int[] cacsochan = Array.FindAll(numbers, predicate); // In kết quả Action<int> printnumber = (int number) => Console.WriteLine(number); Array.ForEach(cacsochan, printnumber); }Duyệt qua các phần tử mảng
Duyệt qua bằng lệnh for
Bạn có thể dùng for với một biến chạy là chỉ số, chạy từ 0 là chỉ số phần tử đầu tiên cho đến chỉ số của phần tử cuối cùng, chỉ số phần tử cuối cùng có thể xác định bằng số lượng phần tử - 1, số lượng phần tử bạn biết là do khai báo, nếu chưa biết thì lấy bằng thuộc tính .Length
int[] myArray = {1,3,5,19, 10, 20, 40, 40}; int maxIndex = myArray.Length - 1; for (int idx = 0; idxTừ khóa » Duyệt Mảng 2 Chiều C#
-
Mảng 2 Chiều Trong C# | How Kteam
-
Mảng 2 Chiều Trong C# - Quản Trị Máy Tính
-
Mảng 2 Chiều Trong C# | Codelearn
-
[C#] Hướng Dẫn Sử Dụng Mảng 2 Chiều
-
Bài Tập Mảng 2 Chiều Trong C# - C# Căn Bản
-
[PDF] MẢNG 2 CHIỀU (2D Array)
-
Mảng Nhiều Chiều Trong C# - Học Lập Trình Từ Cơ Bản đến Nâng Cao
-
Tìm Số Max, Min Trong Mảng 2 Chiều | Nền Tảng
-
Mảng (Array) Trong C# | 85 Bài Học Lập Trình C# Hay Nhất
-
Ngôn Ngữ C# - Mảng Nhiều Chiều
-
C# - Bài 25: Mảng Hai Chiều - YouTube
-
Mảng Trong C#: Một Chiều, Nhiều Chiều, Răng Cưa (jagged) | Tự Học ICT
-
Mảng Hai Chiều Trong Java - Freetuts