C# Contains(T):确定 ICollection是否包含特定值

  • Post category:C#

C#提供了许多有用的方法来处理数据,其中之一是Contains()。Contains()方法是一个泛型方法,它可以用于任何集合或数组中。它可以检查集合或数组中是否包含给定的元素。当集合或数组中包含要搜索的元素时,该方法将返回true,否则返回false。

使用语法

以下是Contains()方法的语法:

public static bool Contains<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource value);
  • source:要搜索的集合或数组。
  • value:要查找的元素。

示例

示例1:使用Contains查找整数元素

以下示例演示了如何使用Contains()方法在整数数组中查找指定的元素。

int[] numbers = { 1, 2, 3, 4, 5 };
int search = 3;
bool result = numbers.Contains(search);
if (result)
{
  Console.WriteLine("{0}存在数组中", search);
}
else
{
  Console.WriteLine("{0}不存在于数组中", search);
}

输出结果:

3存在于数组中

示例2:使用Contains查找自定义元素

以下示例演示了如何使用Contains()方法在自定义对象的列表中查找指定的元素。

class Employee
{
   public int ID { get; set; }
   public string Name { get; set; }
   public int Age { get; set; }
}

List<Employee> employees = new List<Employee>()
{
    new Employee { ID = 1, Name = "张三", Age = 25 },
    new Employee { ID = 2, Name = "李四", Age = 30 },
    new Employee { ID = 3, Name = "王五", Age = 35 }
};

Employee searchEmployee = new Employee { ID = 2, Name = "李四", Age = 30 };

bool result = employees.Contains(searchEmployee, new EmployeeComparer());

if (result)
{
  Console.WriteLine("员工存在于列表中");
}
else
{
  Console.WriteLine("员工不存在于列表中");
}

class EmployeeComparer: IEqualityComparer<Employee>
{
  public bool Equals(Employee x, Employee y)
  {
    if (x.ID == y.ID && x.Name == y.Name && x.Age == y.Age)
    {
      return true;
    }
    else
    {
      return false;
    }
  }

  public int GetHashCode(Employee obj)
  {
    return obj.ID.GetHashCode();
  }
}

输出结果:

员工存在于列表中

在此示例中,我们创建一个Employee类,其中包含Employee的ID,Name和Age属性。然后,我们使用List集合创建一个包含三个Employee对象的employees列表。这里要注意的一点是,我们创建了一个名为EmployeeComparer的自定义类,以便对Employee对象进行比较。

最后,我们创建了一个名为searchEmployee的Employee对象,其中包含ID,Name和Age属性的值与Employee对象在employees列表中的第二个元素完全相同。接下来,我们使用Contains()方法将searchEmployee对象与employees列表进行比较。因为这两个对象是相等的,所以输出结果为“员工存在于列表中”。

以上就是C#中使用Contains()方法的攻略。