如何解决数组列表的错误

本文关键字:数组 列表 错误 解决 何解决 | 更新日期: 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移动到整个表达式的前面,并且将部分组合在一起。

这似乎是你想要模仿的。