当我想从列表中添加时,为什么会收到空错误异常?

时间:2013-02-22 07:08:31

标签: c# list

我正在从列表中读取一件盔甲的坐标。当它发现特定护甲时,它应该拿走那个护甲对象,然后将它添加到另一个列表中。但是我收到一个空对象错误(对象引用未设置为对象的实例)?

foreach (Armour item in armousOnMap)
        {
            if (item.Row == _yPosition && item.Column == _xPosition)
            {                    
                armourInventory.Add((Armour)item);
            }
        }

2 个答案:

答案 0 :(得分:0)

您需要先初始化列表,然后将项目添加到其中。

var armourInventory = new List<Armour>();

在制作清单时添加此行。

var armourInventory = new List<Armour>();
foreach (Armour item in armousOnMap)
{
    if (item.Row == _yPosition && item.Column == _xPosition)
    {                    
        armourInventory.Add((Armour)item);
    }
}

答案 1 :(得分:0)

是否填充了所有坐标?即不是空的?

var armourInventory = new List<Armour>();

foreach (Armour item in armousOnMap)
{
    if ((item.Row != null && item.Row == _yPosition) && (item.Column != null && item.Column == _xPosition))
    {                    
        armourInventory.Add((Armour)item);
    }
}