C# 打乱一个List的元素顺序
在C#中,可以使用Fisher-Yates洗牌算法来随机打乱一个List的元素顺序。以下是一个示例代码:
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Shuffle(numbers);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
static void Shuffle<T>(List<T> list)
{
Random random = new Random();
for (int i = list.Count - 1; i > 0; i--)
{
int j = random.Next(i + 1);
T temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
在上面的示例代码中,我们首先创建了一个包含整数的List对象numbers。然后,我们调用Shuffle方法来打乱numbers中元素的顺序。Shuffle方法使用了Fisher-Yates洗牌算法,即从最后一个元素开始,依次将当前元素与一个随机位置的元素进行交换,直到第一个元素为止。最后,我们使用foreach循环遍历打乱后的numbers列表,并打印出每个元素的值。
请注意,在每次运行该代码时,打乱后的元素顺序都会是随机的
原文地址: https://www.cveoy.top/t/topic/hQT9 著作权归作者所有。请勿转载和采集!