C# 创建堆栈<;T>;
如何按索引访问C# 创建堆栈<;T>;,c#,.net,stack,C#,.net,Stack,如何按索引访问堆栈中的项目 如何修复我正在尝试制作的游戏的错误 private void UpdateDiamonds(GameTime gameTime) { for (int i = 0; i < diamonds.Count; ++i) { Gem ruby = diamonds[i]; ruby.Update(gameTime); if (ruby.BoundingCircle.Intersects
堆栈中的项目
如何修复我正在尝试制作的游戏的错误
private void UpdateDiamonds(GameTime gameTime)
{
for (int i = 0; i < diamonds.Count; ++i)
{
Gem ruby = diamonds[i];
ruby.Update(gameTime);
if (ruby.BoundingCircle.Intersects(Player.BoundingRectangle))
{
diamonds.Pop(i--);
OnGemCollected(ruby, Player);
}
}
}
private void UpdateDiamonds(游戏时间游戏时间)
{
对于(整数i=0;i
以下是我得到的错误:
无法将带[]的索引应用于“System.Collections.Generic.Stack”类型的表达式
方法“Pop”没有重载1个参数
您使用了错误的数据结构。如果要索引和删除集合中的任意元素,请使用简单的列表
如果使用了错误的数据结构。如果要索引和删除集合中的任意元素,请对集合使用简单的列表
,我不会使用堆栈。堆栈是一种数据结构,在后进先出的情况下非常有效。由于您希望在集合上执行其他操作,因此堆栈不是一个好的选择。我建议你试试清单。关于另一个问题:
使用Linq函数ElementAt(int索引)代码>:
私有void UpdateDiamonds(游戏时间游戏时间)
{
对于(整数i=0;i.ElementAt(i);
ruby.Update(游戏时间);
if(ruby.BoundingCircle.Intersects(Player.BoundingRectangle))
{
钻石。流行音乐(i-);
Ongem(ruby,播放器);
}
}
}
对于集合,我不会使用堆栈。堆栈是一种数据结构,在后进先出的情况下非常有效。由于您希望在集合上执行其他操作,因此堆栈不是一个好的选择。我建议你试试清单。关于另一个问题:
使用Linq函数ElementAt(int索引)代码>:
私有void UpdateDiamonds(游戏时间游戏时间)
{
对于(整数i=0;i.ElementAt(i);
ruby.Update(游戏时间);
if(ruby.BoundingCircle.Intersects(Player.BoundingRectangle))
{
钻石。流行音乐(i-);
Ongem(ruby,播放器);
}
}
}
堆栈是一种集合类型,不能这样使用。
它是一个后进先出的集合(后进先出):你能从堆栈中弹出的唯一元素是你最后一次推入的元素
我邀请您阅读一些关于数据结构的文档:堆栈是一种不能像那样使用的集合类型。
它是一个后进先出的集合(后进先出):你能从堆栈中弹出的唯一元素是你最后一次推入的元素
我邀请您阅读一些关于数据结构的文档:如果需要随机成员访问,您确定需要堆栈吗?您不能使用这样的堆栈。您需要使用列表
堆栈是后进先出的,而不是随机的。您的数据结构不正确。如果需要随机成员访问,您确定需要堆栈吗?您不能使用这样的堆栈。您需要使用列表
堆栈是后进先出的,而不是随机的。您的数据结构不正确。与此相对,“解决”了第一个编译器错误,但对第二个编译器错误没有帮助。你不能从堆栈中弹出任意元素。事实上,你已经看过了。请稍等。谢谢你的建议,不过是的,我就用这个清单。更简单。这“解决”了第一个编译器错误,但对第二个没有帮助。你不能从堆栈中弹出任意元素。事实上,你已经看过了。请稍等。谢谢你的建议,不过是的,我就用这个清单。更容易。
using System.Linq;
private void UpdateDiamonds(GameTime gameTime)
{
for (int i = 0; i < diamonds.Count; ++i)
{
Gem ruby = diamonds.ElementAt(i);
ruby.Update(gameTime);
if (ruby.BoundingCircle.Intersects(Player.BoundingRectangle))
{
diamonds.Pop(i--);
OnGemCollected(ruby, Player);
}
}
}