【问题标题】:check arraylist element equals an array检查arraylist元素是否等于一个数组
【发布时间】:2023-04-02 18:24:01
【问题描述】:

我正在尝试测试一个元素是否等于一个数组。但是,即使array==arraylist[element] repetitive 的值仍设置为 false。

这是我的代码:

bool repetitive = false;
foreach(var element in arraylist)
{
    if (array.Equals(element))
        repetitive = true;
}
return repetitive;

【问题讨论】:

  • 真的,您只是在测试arraylist 中的最后一项,每次迭代都会重置repetitive
  • 什么是数组,什么是“元素”的类型。这段代码的目标是什么?
  • int[,] array=new int[8,8];
  • 只需使用Contains

标签: c# arrays arraylist


【解决方案1】:

您需要在找到重复值后返回 true 或执行 or equals

返回真方法:

bool repetitive = false;
foreach(var element in arraylist)
{
    if (array.Equals(element))
        return true;  //<<< This is the difference
    else
        repetitive = false;
}
return repetitive;

或使用按位或等于

bool repetitive = false;
foreach(var element in arraylist)
{
    if (array.Equals(element))
        repetitive |= true;
    else
        repetitive |= false;
}
return repetitive;

【讨论】:

  • 你比较的是什么元素?也许它是在比较内存引用而不是值?
猜你喜欢
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
相关资源
最近更新 更多