Giới thiệu
Trong C#, mảng (array) luôn có kích thước cố định (IsFixedSize = true) và không chỉ đọc (IsReadOnly = false). Thuộc tính IsReadOnly của mảng luôn trả về false vì bạn có thể thay đổi giá trị các phần tử (nhưng không thể thay đổi kích thước).
Ví dụ 1
using System;
public class Demo
{
public static void Main()
{
string[] products = new string[] { };
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'E'? = {0}",
Array.Exists(products, ele => ele.StartsWith("E")));
Console.WriteLine("Mảng có kích thước cố định? = " + products.IsFixedSize);
Console.WriteLine("Mảng chỉ đọc? = " + products.IsReadOnly);
}
}
Kết quả
Có sản phẩm nào bắt đầu bằng 'E'? = False Mảng có kích thước cố định? = True Mảng chỉ đọc? = False
Ví dụ 2
using System;
public class Demo
{
public static void Main()
{
string[] products = { "Mobiles", "Laptop", "Watches", "Books" };
Console.WriteLine("Danh sách sản phẩm...");
foreach (string s in products)
{
Console.WriteLine(s);
}
Console.WriteLine("\nCó sản phẩm nào bắt đầu bằng 'C'? = {0}",
Array.Exists(products, ele => ele.StartsWith("C")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'D'? = {0}",
Array.Exists(products, ele => ele.StartsWith("D")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'T'? = {0}",
Array.Exists(products, ele => ele.StartsWith("T")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'E'? = {0}",
Array.Exists(products, ele => ele.StartsWith("E")));
Console.WriteLine("Mảng chỉ đọc? = " + products.IsReadOnly);
}
}
Kết quả
Danh sách sản phẩm... Mobiles Laptop Watches Books Có sản phẩm nào bắt đầu bằng 'C'? = False Có sản phẩm nào bắt đầu bằng 'D'? = False Có sản phẩm nào bắt đầu bằng 'T'? = False Có sản phẩm nào bắt đầu bằng 'E'? = False Mảng chỉ đọc? = False
Lưu ý quan trọng
- Mảng C# luôn có
IsFixedSize = truevàIsReadOnly = false. IsReadOnly = falsenghĩa là bạn có thể thay đổi giá trị các phần tử:arr[0] = "New".IsFixedSize = truenghĩa là bạn không thể thêm/xóa phần tử (không thể resize).- Để có collection thay đổi kích thước, dùng
List<T>. - Để có collection chỉ đọc, dùng
IReadOnlyList<T>,ReadOnlyCollection<T>hoặc.AsReadOnly().