我有一个List<Player>
我希望输出有序的字符串,所以我想知道这样做的正确方法是什么,如果一个简单的foreach总是输出它已经订购(到目前为止它从我做的测试?)
例如:
int position = 0;
foreach (var player in list)
{
position++;
Console.Write(position.ToString() + " " + player.Name);
}
我可以在以后获得list[X]
,其中X是列表中的玩家编号。
或者有更好的方法吗?
答案 0 :(得分:3)
List将按照添加到列表中的顺序输出元素。如果您使用.net 3.0+,则可以在打印输出之前执行.OrderBy(r=> r.Foo)
以保证订单。如果你要在循环中增加一个计数器,我建议使用经典的for循环而不是foreach
for(int pos =0; pos<list.count; ++pos) {
Console.Write(pos.ToString() + " " + list[pos].Name);
}
答案 1 :(得分:1)
对于列表,使用foreach将始终按列表的原始顺序输出。
答案 2 :(得分:1)
你有什么作品。 List是一个有序的集合,它的枚举器也是订购的。这是一个很好的问题,因为并非所有集合都有排序的概念,例如词典
答案 3 :(得分:0)
如果通过订购,你的意思是按照它在集合中的顺序,你的foreach正是我将如何做到的。但是,如果您需要更改顺序,那么您可能会考虑使用LINQ,尤其是如果您可能希望按plyer类的不同属性进行排序。