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

How to remove an object from an array of objects in C#

我不知道我正在尝试做的事情在 C# 中是否可行,而且我无法在线找到答案。我有 4 个敌方对象。其中一个死了。我希望将那个敌人从阵列中移除。如果敌人在阵列中间,我希望下一个敌人占据它的位置,这样阵列中间就没有空位。这是代码(我写的“//remove here”是我想要删除对象的地方):

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

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

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

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