C#在数组中查找匹配项

时间:2013-04-07 21:56:10

标签: c#

我试图查看我的数组中是否存在某个元素。 我有一个函数,我在我的数组中添加元素和一个搜索函数,如果元素存在,则返回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;
}

5 个答案:

答案 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;
}

也许这会奏效。