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

Kiểm tra mảng có kích thước cố định trong C#

Giới thiệu

Trong C#, mọi mảng (array) đều có kích thước cố định. Thuộc tính IsFixedSize của mảng luôn trả về true. Điều này nghĩa là bạn không thể thêm hoặc xóa phần tử (resize), chỉ có thể thay đổi giá trị các phần tử hiện có.

Ví dụ 1

using System;

public class Demo
{
    public static void Main()
    {
        string[] products = new string[] { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };

        Console.WriteLine("Danh sách sản phẩm...");
        foreach (string s in products)
        {
            Console.WriteLine(s);
        }

        Console.WriteLine("Sản phẩm 'Accessories' có trong mảng? = {0}",
            Array.Exists(products, ele => ele == "Accessories"));
        Console.WriteLine("Sản phẩm 'Stationery' có trong mảng? = {0}",
            Array.Exists(products, ele => ele == "Stationery"));

        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 có kích thước cố định? = " + products.IsFixedSize);
    }
}

Kết quả

Danh sách sản phẩm...
Electronics
Accessories
Clothing
Toys
Clothing
Furniture
Sản phẩm 'Accessories' có trong mảng? = True
Sản phẩm 'Stationery' có trong mảng? = False
Có sản phẩm nào bắt đầu bằng 'C'? = True
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'? = True
Có sản phẩm nào bắt đầu bằng 'E'? = True
Mảng có kích thước cố định? = True

Ví dụ 2

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);
    }
}

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

Lưu ý quan trọng

  • Mảng C# luôn có IsFixedSize = true.
  • Không thể thay đổi kích thước mảng sau khi tạo. Để "resize", phải tạo mảng mới và copy (dùng Array.Resize).
  • IsReadOnly = false cho mảng (có thể gán giá trị cho phần tử).
  • Để có collection thay đổi kích thước động, dùng List<T>.
  • Array.Exists() dùng delegate/predicate để tìm kiếm phần tử thỏa mãn điều kiện.