C# 从列表中删除<&燃气轮机;和绘制错误

C# 从列表中删除<&燃气轮机;和绘制错误,c#,xna-4.0,C#,Xna 4.0,我的问题是,当我从列表中删除时,列表中的Draw函数将生效。意外的文件处理错误 List<monster> Monster = new List<monster>(); //Initilize Monster.add(new Monster()); //Update if (Monster[0]. health == 0) { Monster.removeAt[0]; } //Draw If (Monster[0].health > 0) { spri

我的问题是,当我从列表中删除时,列表中的Draw函数将生效。意外的文件处理错误

List<monster> Monster = new List<monster>();

//Initilize
Monster.add(new Monster());

//Update
if (Monster[0]. health == 0)
{
   Monster.removeAt[0];
}

//Draw

If (Monster[0].health > 0)
{
spriteBatch.Draw(Monster[0].texutre,Monster[0].pos,Color.White);
}
List Monster=new List();
//初始化
添加(新怪物());
//更新
如果(怪物[0]。运行状况==0)
{
怪物。移除[0];
}
//画
如果(怪物[0]。运行状况>0)
{
spriteBatch.Draw(怪物[0].texutre,怪物[0].pos,Color.White);
}

是否有办法根据列表中是否有怪物来只绘制怪物?

使用以下代码片段进行绘制

if(Monster.Any())
    spriteBatch.Draw(Monster.First().texutre,Monster.First().pos,Color.White);

这样,只有在有怪物的情况下,它才会画出一个怪物
Any()
First()
方法是LINQ,因此必须使用System.LINQ指定
位于.cs文件顶部。

尝试在列表中循环并添加/删除tdhe怪物

if(Monster.Count > 0){
    // draw
}
for(int i=0;i<Monster.Count(); i++)
{
 var m = Monster.ElementAt(i);
 //Update
if (m.health == 0)
{
   Monster.Remove(m)
}

//Draw

If (m.health > 0)
{
spriteBatch.Draw(m.texutre,m.pos,Color.White);
}
}
for(int i=0;i 0)
{
spriteBatch.Draw(m.texutre、m.pos、彩色、白色);
}
}