C#如果item不在数组中

use*_*331 4 c# arrays

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

string[] departmentArray = {
    "Warranty Service Representative",
    "Warranty Service Administrative Manager",
    "Warranty and Site Administrator"
};
Run Code Online (Sandbox Code Playgroud)

我有这个字符串

var department = "Warranty Service Representative"
Run Code Online (Sandbox Code Playgroud)

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

if (Array.Exists(departmentArray, element => element != department)){
}
Run Code Online (Sandbox Code Playgroud)

显然字符串在数组中,因此它应该返回false,但是对于我的字符串,这返回true.我究竟做错了什么?

Ste*_*ens 14

这不是更简单吗?

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

String department = "Warranty Service Representative";

if (departmentArray.Contains(department) == false)
{
}
Run Code Online (Sandbox Code Playgroud)


ser*_*iyb 8

if (!Array.Exists(departmentArray, element => element == department))
{
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,底层逻辑看起来像:

!(departmentArray[0] == department || departmentArray[1] == department || ..)
Run Code Online (Sandbox Code Playgroud)

在您的代码中,您有:

departmentArray[0] != department || departmentArray[1] != department || ..
Run Code Online (Sandbox Code Playgroud)