📌  相关文章
📜  如何检查一个整数是否在数组c#中(1)

📅  最后修改于: 2023-12-03 15:09:11.694000             🧑  作者: Mango

如何检查一个整数是否在数组c#中

在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>接口。该类具有NameAge属性,并且Equals方法用于检查两个Person对象是否相等。

我们定义了一个名为people的对象数组,并设置一个要查找的Person对象personToFind。使用Contains方法来检查personToFind是否在people中。

注意:如果你没有实现IEquatable<T>接口,则默认情况下,Contains方法将使用对象引用进行比较,而不是实际值。这意味着如果你创建了两个具有相同值的Person对象,但它们的引用不同,则Contains方法将返回false