Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Kiểm tra mảng có chỉ đọc trong C#

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 = true và IsReadOnly = false.
  • IsReadOnly = false nghĩa là bạn có thể thay đổi giá trị các phần tử: arr[0] = "New".
  • IsFixedSize = true nghĩ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().