如何更新List <vector2>列表中的值?</vector2>

时间:2013-01-04 11:58:04

标签: c# visual-studio-2010 windows-phone-7 windows-phone

我刚开始学习Windows Phone编程。

我有一个像这样定义的列表,

    private List<Vector2> _terrain;
    public List<Vector2> Terrain { get { return _terrain; } }

在这个下面,我用这样的一些向量填充列表,

    level.Terrain.Add(new Vector2(i, (int)y));

假设我在这个列表中有50个元素。我想要做的是,我想要删除此列表中的第一项,然后将第二项移到第一位,第三项到第二项等等。我想要做的是我正在生成随机“事物” 。有了这个,我打算让它们看起来像移动。谢谢你的帮助!

4 个答案:

答案 0 :(得分:1)

List<T>类尝试为作为项列表的结构提供抽象。 因此,无论何时从列表中删除某个项目,它都会消失,并且该列表会自动压缩。例如,如果我有:

List<int> numbers = new List<int>();
for (int i = 0; i < 10; i++)
{
   numbers.Add(i+1); //adds the numbers 1 through 10
}

Console.WriteLine(numbers[0]); //writes out 1 - the first item
Console.WriteLine(numbers[3]); //writes out 4 - the fourth item
Console.WriteLine(numbers.Count); //writes out 10 - there are ten elements

numbers.RemoveAt(0); //removes the first element of the list
Console.WriteLine(numbers[0]); //writes out 2 - the new first item
Console.WriteLine(numbers[3]); //writes out 5 - the new fourth item
Console.WriteLine(numbers.Count); //writes out 9 - there are nine elements now

numbers.RemoveAt(3); //removes the fourth element of the list
Console.WriteLine(numbers[0]); //writes out 2 - still the first item
Console.WriteLine(numbers[3]); //writes out 6 - the new fourth item
Console.WriteLine(numbers.Count); //writes out 8 - there are eight elements total

答案 1 :(得分:0)

听起来你想要一个队列而不是一个List。

答案 2 :(得分:0)

试试这个:

level.Terrain.RemoveAt(0)

答案 3 :(得分:0)

使用通用队列

Queue<Vector2> testQueue= new Queue<Vector2>();

Also check this link for more information of generic Queue