【问题标题】:Why am I receiving a null error exception when I want to add from a list?当我想从列表中添加时,为什么会收到空错误异常?
【发布时间】:2013-02-22 07:08:31
【问题描述】:

我正在从列表中读取一件盔甲的坐标。当它找到那个特定的盔甲时,它应该获取那个盔甲对象,并将其添加到另一个列表中。然而我收到一个空对象错误(对象引用未设置为对象的实例)?

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

【问题讨论】:

  • 你确定armourInventory被初始化为new List<Armour>吗?
  • 什么是 armourInventory 以及它是如何实例化的?
  • 哪一行失败了?基本上,something 为 null - itemarmousOnMaparmourInventory。除此之外,我们无法为您提供如此少的信息。见tinyurl.com/so-list
  • 可能是空信息异常。

标签: c# list


【解决方案1】:

是否已填充所有坐标?即不是空值?

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);
    }
}

【讨论】:

    【解决方案2】:

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

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      相关资源
      最近更新 更多