Mảng động là khai báo một mảng phần tử có kích thước động. Mảng động là rất quan trọng, tối ưu trong việc lập trình, nó cấp phát bộ nhớ lưu trữ động. Vậy các khai báo và sử dụng mảng động trong C# như thế nào? Sau đây sẽ giới thiệu về mảng động trong C#.
Từ khóa khai báo List<Kiểu_dữ_liệu> mang_dong= new List< Kiểu_dữ_liệu >();
- Kiểu_dữ_liệu: Là kiểu dữ liệu có thể là String, double, int,...hoặc là kiểu dữ liệu do người dùng định nghĩa.
Các thuộc tính trong mảng động cho ta thao tác:
- Thêm phần tử vào mảng dùng thuộc tính Add, phần từ thêm sẽ vào vị trí cuối mảng
- Đếm số phần tử có trong mảng dùng thuộc tính Count.
- Xóa phần tử trong mảng dùng thuộc tính RemoveRange, RemoveAll, RemoveAt
- Nhiều các thuộc tính khác.
Ví dụ 1:
private Void vidu1
{
List<string> mang_xau = new List<string>();
for (int i = 0; i < 5; i++)
{
mang_xau.Add(i.ToString());//Thêm phần tử vào mảng
}
MessageBox.Show(mang_xau.Count.ToString());//Hiển thị số phần tử trong mảng
MessageBox.Show(mang_xau[2]);//Hiển thị giá trị phần tử thứ 3
mang_xau.RemoveRange(0, mang_xau.Count); //Xóa phần tử từ vị trí đầu đến hết
}
Kết quả hiển thị thông báo lần lượt là: 5, 3
Ví dụ 2:
//Định nghĩa kiểu dữ liệu
public struct diem_daucuoi
{
public string danhtu_chung, danhtu_rieng;
public int giatri;
}
private Void vidu2
{
List<diem_daucuoi> mang_dinhnghia = new List<diem_daucuoi>();
for (int i = 0; i < 5; i++)
{
diem_daucuoi Diem = new diem_daucuoi();
Diem.danhtu_chung = "chung" + i.ToString();
Diem.danhtu_rieng = "rieng" + i.ToString();
Diem. giatri = i+1;
//Add điểm
mang_dinhnghia.Add(Diem);
}
//Sắp xếp mang_dinhnghia giảm dần theo giatri
for (int i = 0; i < mang_dinhnghia.Count-1; i++)
{
for (int j = i+1; j < mang_dinhnghia.Count; j++)
{
if(mang_dinhnghia[j].giatri> mang_dinhnghia[i].giatri)
{
diem_daucuoi tg = mang_dinhnghia[j];
mang_dinhnghia[j]= mang_dinhnghia[i];
mang_dinhnghia[i]= tg;
}
}
}
String xau="";
for (int i = 0; i < mang_dinhnghia.Count; i++)
{
xau+= mang_dinhnghia[i].giatri.ToString()+"\n";
}
MessageBox.Show(xau);//Hiển thị xau
mang_xau.RemoveRange(0, mang_xau.Count); //Xóa phần tử từ vị trí đầu đến hết
}
Kết quả hiển thị thông báo là:
5
4
3
2
1
0 comments:
Post a Comment