对于每个列表或哪个将是正确的方法

本文关键字:方法 于每个 列表 | 更新日期: 2023-09-27 18:05:37

我有一个List<Player>,我希望输出有序的字符串,所以我想知道这样做的正确方法是什么,如果一个简单的foreach将始终输出它已经有序(到目前为止,它从我做的测试)?

例如:

int position = 0;
foreach (var player in list)
{
    position++;
    Console.Write(position.ToString() + " " + player.Name);
}

我以后可能会得到它,比如list[X],其中X是列表中的球员号码。

对于每个列表或哪个将是正确的方法

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);
}

对于列表,使用foreach将始终按照列表的原始顺序输出。

你有什么工作。List是有序集合,其枚举数也是有序的。这是一个很好的问题,因为并非所有集合都有排序的概念,例如Dictionary

如果您所说的有序是指它在集合中的顺序,那么您的foreach正是我要做的。然而,如果你需要改变顺序,那么你可能会考虑使用LINQ,特别是如果你可能想要根据播放器类的不同属性进行排序。