IMO cách tốt nhất để kiểm tra xem một mảng có chứa giá trị đã cho hay không là sử dụng System.Collections.Generic.IList<T>.Contains(T item)
phương thức theo cách sau:
((IList<string>)stringArray).Contains(value)
Mẫu mã hoàn chỉnh:
string[] stringArray = { "text1", "text2", "text3", "text4" };
string value = "text3";
if (((IList<string>)stringArray).Contains(value)) Console.WriteLine("The array contains "+value);
else Console.WriteLine("The given string was not found in array.");
T[]
mảng riêng thực hiện một vài phương thức List<T>
, chẳng hạn như Đếm và Chứa. Vì đó là một triển khai rõ ràng (riêng tư), bạn sẽ không thể sử dụng các phương thức này mà không cần truyền mảng trước. Điều này không chỉ hoạt động đối với các chuỗi - bạn có thể sử dụng thủ thuật này để kiểm tra xem một mảng thuộc bất kỳ loại nào có chứa bất kỳ phần tử nào không, miễn là lớp của phần tử thực hiện IComparable.
Hãy nhớ rằng không phải tất cả các IList<T>
phương pháp đều hoạt động theo cách này. Cố gắng sử dụng IList<T>
phương thức Add trên một mảng sẽ thất bại.