如何从C#中的对象数组中删除对象

时间:2015-11-29 01:18:02

标签: c# arrays object destroy

我不知道我在C#中尝试做什么是可能的,我无法在线找到答案。我有4个敌人物体。其中一人死亡。我希望从阵列中移除敌人。如果敌人位于阵列的中间,我希望下一个敌人占据其位置,以便阵列中间没有空位。这是代码(我在那里写了#34; //在这里删除"是我希望删除对象的地方):

    public static int numberOfEnemies = random.Next(1, 4);
    // create 1-4 enemies
    public static Enemy[] enemyNumber = new Enemy[numberOfEnemies]; 

   // initialize enemies
   int h = 0;
         do
         {
               enemyNumber[h] = new Enemy(playerLevel);
               h++;
               System.Threading.Thread.Sleep(25);
         } while (h != numberOfEnemies);

    // code where the fight happens i did not include
    // enemy dies
    if (enemyNumber[0].Ehealth <= 0){
                {
                    Console.WriteLine("Enemy {0} is dead!", eName);
                    // remove here
                }
    }

1 个答案:

答案 0 :(得分:0)

如果有人提到,您最好使用列表。这将允许你删除对象而不用担心空的空间(它将由下一个对象填充)如果没有,每次从数组中删除某些东西时你都需要这样的东西(假设Enemy不是结构)

enemyNumber = enemyNumber.Where(enem => enem != null).ToArray();

同时重命名enemyNumber因为它是一系列敌人,而不是一个数字:)