在C#中,随机重新排列项目列表的最佳方法是使用Fisher-Yates Shuffle算法。以下是一个简单的示例代码:
using System;
public static class RandomExtensions
{
public static void Shuffle<T>(this Random rng, T[] array)
{
int n = array.Length;
while (n > 1)
{
int k = rng.Next(n--);
T temp = array[n];
array[n] = array[k];
array[k] = temp;
}
}
}
public class Program
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rng = new Random();
rng.Shuffle(array);
Console.WriteLine(string.Join(", ", array));
}
}
在这个示例中,我们定义了一个扩展方法Shuffle
,它接受一个随机数生成器和一个泛型数组作为参数。该方法使用Fisher-Yates Shuffle算法对数组进行随机重新排列。
在Main
方法中,我们创建了一个包含1到10的整数数组,并使用Random
类创建一个随机数生成器。然后,我们调用Shuffle
方法对数组进行随机重新排列,并将结果打印到控制台上。
领取专属 10元无门槛券
手把手带您无忧上云