List<T>.Contains
方法在 C# 中用于檢查列表中是否包含指定的元素
Contains
方法輕松檢查元素是否存在。List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
bool containsThree = numbers.Contains(3); // true
Equals
和 GetHashCode
方法。這樣,Contains
方法才能正確地比較對象的屬性,而不僅僅是引用。public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
Person person = (Person)obj;
return Name == person.Name && Age == person.Age;
}
public override int GetHashCode() => (Name, Age).GetHashCode();
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};
bool containsAlice = people.Contains(new Person { Name = "Alice", Age = 30 }); // true
Contains
方法檢查特定字符串是否存在。List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
bool containsBob = names.Contains("Bob"); // true
注意:在使用 Contains
方法時,請確保理解其時間復雜度。對于 List<T>
,Contains
方法的時間復雜度為 O(n),其中 n 是列表中的元素數量。因此,在大型列表中使用 Contains
方法可能會導致性能問題。在這種情況下,可以考慮使用更高效的數據結構,如 HashSet<T>
。