C# 如果项不在数组中

本文关键字:数组 如果 | 更新日期: 2023-09-27 18:31:56

我有一个包含以下 3 个项目的数组:

string[] departmentArray = {
    "Warranty Service Representative",
    "Warranty Service Administrative Manager",
    "Warranty and Site Administrator"
};

我有这个字符串

var department = "Warranty Service Representative"

我有这个条件,假设测试字符串部门是否不在departmentArray

if (Array.Exists(departmentArray, element => element != department)){
}
显然,字符串

在数组中,所以它应该返回 false,但这为我的字符串返回 true。我做错了什么?

C# 如果项不在数组中

这不是更简单吗?

string[] departmentArray = { 
    "Warranty Service Representative", 
    "Warranty Service Administrative Manager", 
    "Warranty and Site Administrator" };
String department = "Warranty Service Representative";
if (departmentArray.Contains(department) == false)
{
}
if (!Array.Exists(departmentArray, element => element == department))
{
}

在本例中,底层逻辑如下所示:

!(departmentArray[0] == department || departmentArray[1] == department || ..)

在代码中,您有:

departmentArray[0] != department || departmentArray[1] != department || ..
代码

if (Array.Exists(departmentArray, element => element != department))
{
}

如果department departmentArray !=存在任何元素,则true,这就是为什么在这种情况下结果是 true 而不是 false(显然departmentArray中的字符串与 department 不同)。因此,如果您想检查department是否不在departmentArray请尝试以下操作:

bool IsNotInArray(String[] array, string element){
    return !Array.Exists(array, e => e == element);
}