如何对从最大到最小的整数列表进行排序

时间:2012-03-16 07:30:00

标签: c# sorting

我正在构建一个简单的程序,在C#中在屏幕上创建一堆分散的树。我对C#还是比较新的所以请耐心等待。我的程序创建了树,但是一些图像最终在彼此之上,因为树是以看似随机的顺序绘制的。

我有一个树对象的列表,我想知道如何通过树的Y值(treeObject.position.Y)对这个列表进行排序,当我在for循环中调用每个树的绘制方法时它会先画出最后面的那些(最小的Y)。我努力编写它但它变得太麻烦了。

此处提供完整代码: http://pastebin.com/5G6aecLm

3 个答案:

答案 0 :(得分:2)

使用某种排序算法,最好是:QuickSort

答案 1 :(得分:1)

如果我理解你的问题,有很多方法可以做到,这里只有一个:

假设您的列表类型为List<TreeObject>

using System.Linq;

var q = yourList.AsEnumerable<TreeObject>().OrderBy(obj => obj.position.Y);

然后循环q以正确的顺序获取对象。

答案 2 :(得分:0)

如果您使用的是具有3D功能的绘图引擎,只需使用世界的正视图即可。您将看到没有区别,但您将能够使用z来控制深度(z = -y将具有所需的效果),以​​及能够有效地缩放,旋转和变形2D精灵。 / p>