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