我试图查看我的数组中是否存在某个元素。 我有一个函数,我在我的数组中添加元素和一个搜索函数,如果元素存在,则返回true。我不断将对象引用设置为对象错误的实例。
我有一个字段:
int [] Items;
这是搜索功能:
public bool Search(int item)
{
bool isInArray = false;
for (int i = 0; i < Items.Length; i++) // ERROR HERE
{
if (Items[i] == item)
{
isInArray = true;
break;
}
}
return isInArray;
}
这是添加功能:
public void Add(int item)
{
if (Items == null)
{
Items = new int[1];
}
else
{
Array.Resize<int>(ref Items, Items.Length + 1);
}
Items[Items.Length - 1] = item;
}
答案 0 :(得分:1)
只要您不添加至少一个,您的商品就会为空。
答案 1 :(得分:0)
更改
for (int i = 0; i < Items.Length; i++)
到
for (int i = 0; i < (Items?? (Items = new int[0])).Length; i++)
答案 2 :(得分:0)
在进行循环之前检查null:
public bool Search(int item)
{
bool isInArray = false;
if (Items != null)
{
for (int i = 0; i < Items.Length; i++) // ERROR HERE
{
if (Items[i] == item)
{
isInArray = true;
break;
}
}
}
return isInArray;
}
答案 3 :(得分:0)
Items
需要初始化,例如在构造函数中。例如。 Items = new int [10]
答案 4 :(得分:0)
public bool Search(int item)
{
return Array.IndexOf(Items, item) > 0 ? true : false;
}
也许这会奏效。