📅  最后修改于: 2023-12-03 15:09:11.694000             🧑  作者: Mango
在C#中,我们可以使用Array
类提供的Contains
方法来检查一个整数是否在一个数组中。这个方法接受一个参数,即要检查的元素,返回一个布尔值表示该元素是否在数组中。
int[] nums = { 1, 2, 3, 4, 5 };
int numToFind = 3;
if (nums.Contains(numToFind))
{
Console.WriteLine("Num found in array!");
}
else
{
Console.WriteLine("Num not found in array!");
}
在上面的例子中,我们定义了一个整数数组nums
,并且设置了一个要查找的整数numToFind
。我们使用Contains
方法来检查numToFind
是否在nums
中。如果存在,则输出Num found in array!
,否则输出Num not found in array!
。
注意,Contains
方法只能用于一维数组。如果你想要检查一个多维数组中的元素是否存在,需要使用其他方式。
如果需要检查一个对象数组中是否存在某个元素,需要注意要实现IEquatable<T>
接口。
class Person : IEquatable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public bool Equals(Person other)
{
if (other == null) return false;
return (this.Name.Equals(other.Name) && this.Age == other.Age);
}
}
Person[] people = {
new Person {Name="John", Age=23},
new Person {Name="Jane", Age=30},
new Person {Name="Mike", Age=43}
};
Person personToFind = new Person {Name="Jane", Age=30};
if (people.Contains(personToFind))
{
Console.WriteLine("Person found in array!");
}
else
{
Console.WriteLine("Person not found in array!");
}
在上面的例子中,我们定义了一个名为Person
的类,并实现了IEquatable<T>
接口。该类具有Name
和Age
属性,并且Equals
方法用于检查两个Person
对象是否相等。
我们定义了一个名为people
的对象数组,并设置一个要查找的Person
对象personToFind
。使用Contains
方法来检查personToFind
是否在people
中。
注意:如果你没有实现IEquatable<T>
接口,则默认情况下,Contains
方法将使用对象引用进行比较,而不是实际值。这意味着如果你创建了两个具有相同值的Person
对象,但它们的引用不同,则Contains
方法将返回false
。