如何解决数组列表的错误
本文关键字:数组 列表 错误 解决 何解决 | 更新日期: 2023-09-27 18:18:38
if (!(errorlist.Contains(-1)) || !(errorlist.Contains(1))) break;
我不明白为什么这段代码跳出循环,即使错误列表中包含1。调试时,errorlist[0] = 1
和其他索引为0。
解决方案是什么?
你需要用&&
代替||
。(如果你需要他们同时不在列表中)
在您的例子中,第一个条件成功了。
您的列表不包含-1
,因此条件if(!errorlist.Contains(-1))
中断。
如果你仍然需要保留||
,你可以这样做
if(!errorList.Any((p)=> { return (p == 1 || p== -1);}))
如果你不能使用Any
,你仍然可以像
if(!(errorList.Cotains(1) || errorList.Contains(-1)))
如果我理解对了
为什么即使错误列表包含1 in,这段代码也会跳出循环
列表
你想打破当且仅当errorlist
不包含1
或-1
:
if (!((errorlist.Contains(-1)) || (errorlist.Contains(1)))) break;
检查列表是否同时包含 -1和1。我怀疑你想要
if (!(errorlist.Contains(-1)) && !(errorlist.Contains(1))) break;
或
if (!(errorlist.Contains(-1) || errorlist.Contains(1))) break;
||
表示OR。因此,它读起来像:
如果(errorList不包含-1)或(errorList不包含1)则break.
正如你所看到的,errorList必须包含-1和1才能不中断。
如果您不想中断,如果其中任何一个都存在,请将||
(OR)更改为&&
(AND):
if (!(errorlist.Contains(-1)) && !(errorlist.Contains(1))) break;
你可以这样做:
if (!(errorlist.Contains(-1) || errorlist.Contains(1))) break;
现在是:
Break if NOT (errorList包含-1或errorList包含1).注意,在应用NOT之前,NOT移动到整个表达式的前面,并且将部分组合在一起。
这似乎是你想要模仿的。