📌  相关文章
📜  c# 检查数组是否包含值 - C# (1)

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

C# 检查数组是否包含值

在C#中,我们可以使用以下方法来检查一个数组是否包含某个值:

int[] numbers = { 1, 3, 5, 7, 9 };
int searchValue = 5;

if (Array.IndexOf(numbers, searchValue) != -1)
{
    Console.WriteLine("Value {0} found", searchValue);
}
else
{
    Console.WriteLine("Value {0} not found", searchValue);
}

上述代码中,我们声明了一个整型数组 numbers,并定义了需要查找的值 searchValue。我们使用了 Array.IndexOf() 方法来查找数组中是否包含该值,如果该值不在数组中,Array.IndexOf() 方法将返回 -1。因此,我们可以使用条件语句来判断是否存在该值。

另一种检查数组是否包含值的方法是使用 Contains() 方法。这个方法是 IEnumerable<T> 接口的扩展方法,因此我们需要使用 System.Linq 命名空间,并将数组转换为 IEnumerable<T> 类型:

using System.Linq;

int[] numbers = { 1, 3, 5, 7, 9 };
int searchValue = 5;
if (numbers.Contains(searchValue))
{
    Console.WriteLine("Value {0} found", searchValue);
}
else
{
    Console.WriteLine("Value {0} not found", searchValue);
}

这个方法与 Array.IndexOf() 方法的效果是相同的,但语法更加清晰和简单。

另外,我们可以使用 Any() 方法来检查数组中是否存在符合条件的元素。这个方法同样是 IEnumerable<T> 接口的扩展方法,我们可以使用 Lambda 表达式指定检查条件:

int[] numbers = { 1, 3, 5, 7, 9 };
int searchValue = 5;

if (numbers.Any(n => n == searchValue))
{
    Console.WriteLine("Value {0} found", searchValue);
}
else
{
    Console.WriteLine("Value {0} not found", searchValue);
}

上述代码中,我们使用了 Lambda 表达式 n => n == searchValue 来指定检查条件。如果数组中存在一个元素 n,使得 n == searchValue 成立,则 Any() 方法返回 true

以上是在 C# 中检查数组是否包含值的三种常见方法。我们可以根据实际需求选择合适的方法来进行数组元素的查找操作。