在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列表,并打印出每个元素的值。

请注意,在每次运行该代码时,打乱后的元素顺序都会是随机的

C# 打乱一个List的元素顺序

原文地址: https://www.cveoy.top/t/topic/hQT9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录