所以我修改了我的代码以及我正在寻找的内容: 我创建了一个锯齿状的数组:
object[][] arr1 = new object[2][];
我按以下方式将ListViewItems添加到数组arr1 [1]:
ListViewItems x = new ListViewItems(y);
arr1[1][0]= x;
然后我需要检查项目x是否存在于数组
中if ((arr1[1].Contains(x)))
{MessageBox.Show("Exists")}
现在的问题是它总是假的。 在数组中,值为:
arr1 [0] [0] {文字="值1"}
x值完全相同
{Text = "value1"}
所以我现在不知道为什么当我做一个Contains()时它仍然是假的,假设arr1 [1]里面有大约20个项目
if ((arr1[1].Contains(x)))
{MessageBox.Show("Exists")}
答案 0 :(得分:0)
首先,我猜你的arr
实际上是一个列表或IEnumerable。
所以你应该这样做,
if(arr.Contains(n))
{
MessageBox.Show("Exists");
}
因为Contains()
检查集合是否包含。
如果你想实际比较第零项;
if (arr[0] == n)
{
MessageBox.Show("EXISTS");
}
编辑:根据OP的更新代码/要求进行了更新。
首先,您要创建的是 NOT 二维数组,但是数组数组。您的arr
有两个元素,每个元素都是另一个对象数组。因此,arr1[1][0]= x;
分配不起作用。您需要做的是为第一个数组中的每个元素分配一个数组。像这样:
object[][] arr1 = new object[2][];
arr1[0] = new object[1];
arr1[1] = new object[1];
现在您可以将x
设置为该数组,如下所示:
arr1[1][0] = x;
其次,您的代码示例仍然无效。所以我很惊讶您甚至声称您的代码总是处于错误状态,因为它应该抛出异常,因为实际情况是arr1[1]
条件中的if
为null
。
此外,没有ListViewItems
类,它是ListViewItem
类。我们也不知道初始化中y
是什么。因此,请了解如何发布Minimal, Complete, and Verifiable example。
由于我不知道y
是什么,我使用了一个字符串,现在它可以正常工作。
object[][] arr1 = new object[2][];
arr1[0] = new object[1];
arr1[1] = new object[1];
ListViewItem x = new ListViewItem("value");
arr1[1][0] = x;
if (arr1[1].Contains(x))
textBox1.Text = "FOUND";
else
textBox1.Text = "NOT FOUND";