C#在数组中查找匹配项
我想看看我的数组中是否存在某个元素。 我有一个向数组中添加元素的函数,还有一个搜索函数,如果元素存在,则返回true。我一直在获取未设置为对象错误实例的对象引用 我有一个领域:C#在数组中查找匹配项,c#,C#,我想看看我的数组中是否存在某个元素。 我有一个向数组中添加元素的函数,还有一个搜索函数,如果元素存在,则返回true。我一直在获取未设置为对象错误实例的对象引用 我有一个领域: int [] Items; 这是搜索功能: public bool Search(int item) { bool isInArray = false; for (int i = 0; i < Items.Length; i++) // ERROR HERE { if (
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;
}
公共布尔搜索(int项)
{
bool-isInArray=false;
for(inti=0;i
这是添加功能:
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;
}
public void Add(int项)
{
if(Items==null)
{
项目=新整数[1];
}
其他的
{
Array.Resize(ref Items,Items.Length+1);
}
项目[项目长度-1]=项目;
}
只要不添加至少一个项目,您的项目就为空。只要不添加至少一个项目,您的项目就为空。更改
for (int i = 0; i < Items.Length; i++)
for(int i=0;i
到
for(int i=0;i<(Items???(Items=new int[0]))。长度;i++)
更改
for (int i = 0; i < Items.Length; i++)
for(int i=0;i
到
for(int i=0;i<(Items???(Items=new int[0]))。长度;i++)
在执行循环之前检查空值:
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;
}
公共布尔搜索(int项)
{
bool-isInArray=false;
如果(项!=null)
{
for(inti=0;i
在执行循环之前检查空值:
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;
}
公共布尔搜索(int项)
{
bool-isInArray=false;
如果(项!=null)
{
for(inti=0;i
项目需要初始化,例如在构造函数中。例如,Items=newint[10]需要初始化Items
,例如在构造函数中。例如,项目=新整数[10]
public bool Search(int item)
{
return Array.IndexOf(Items, item) > 0 ? true : false;
}
也许这样行
也许这会起作用。错误发生在哪里?错误发生在哪里?你的数组初始化了吗?只有一个地方可能发生。什么是项目?你在哪里设置它的值?为什么你不想使用List
,它会给你想要的东西Add
和IndexOf
而不是Search
@ashburaczenko项目数组通过Add函数从用户输入获取其值。检查链接错误发生在哪里?错误发生在哪里?你的数组初始化了吗?只有一个地方可能发生。什么是项目?你在哪里设置它的值?为什么你不想使用List
,它会给你想要的东西Add
和IndexOf
而不是Search
@ashburaczenko项目数组通过Add函数从用户输入获取其值。检查link我在我的表单中在contain函数之前调用add函数,所以它应该为null,对吗?好吧,在数组初始化为null以外的行和循环中设置一个断点,看看条目是否为null。我在我的表单中在contain函数之前调用add函数,所以它应该为null,对吗,将断点设置到将数组初始化为非null的行和循环,并查看项是否为null。这将终止逻辑,因为如果有人在添加之前尝试搜索,则项的第一个元素将为0.ahhh,是,则代码应为项创建零长度数组,而不是单个元素数组。我编辑了我的答案以反映这一点。这将扼杀逻辑,因为如果有人在添加之前尝试搜索-Items的第一个元素将为0.ahhh,是的,那么代码应该为Items创建零长度数组,而不是单个元素数组。我编辑了我的答案以反映这一点。谢谢,但是数组的大小应该与元素总数相同。谢谢,但是数组的大小应该与元素总数相同。