在C#中输出保留随机列表(列表函数)

时间:2016-03-22 15:30:04

标签: c# list

我在C#中使用List函数并使其成为随机参数。这是我的代码。如果输出如下列表:15 20 10 3 6 如何通过上面的列表重新输出再次输出,如:6 3 10 20 15

List<int> dso = new List<int>(20);
Random a = new Random();
for (int i = 0; i < dso.Capacity; i++)
{
   int k = a.Next(100);
   dso.Add(k);

   Console.Write("{0}  ", k);
}

for(int i=dso.Capacity;i<20;i--)
{
   Console.Write("{0} ", dso[i]);
}

2 个答案:

答案 0 :(得分:0)

如果你想要for循环,它应该是

for (int i = dso.Count - 1; i >= 0; i--) {
  Console.Write("{0} ", dso[i]);
}

评论:

  1. Count是实际列表项的数量; Capacity是保留记忆
  2. List<T>基于dso.Count - 1
  3. 的原因为零
  4. 因为您循环颠倒顺序,条件为i >= 0
  5. 但是,我建议使用String.Join Linq 而不是循环让.Net为您完成所有工作:

    // List has its own Reverse() method so we have to put Reverse<int>() to use Linq one
    Console.Write(String.Join(" ", dso.Reverse<int>()));
    

答案 1 :(得分:0)

如果您只是试图反转列表顺序,请使用Reverse(),如下所示:

dso.Reverse();

foreach (var number in dso)
{
    Console.Write(number + " ");
}

由于您似乎只是简单地将列表完整地写出来,因此您可以使用foreach loop。但是,如果您需要更多地控制列表中的起始位置或在列表中跳转,那么for循环会更好。