C#如果item不在数组中

我有一个包含这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。 我究竟做错了什么?

这不会更简单吗?

 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)) { } 

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

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