如何在C#中弄乱数组?

时间:2018-10-08 13:38:46

标签: c# list sorting random methods

我对C#中的List<>数据类型有疑问。我在Windows窗体中执行的程序中有一个颜色列表(List<Color> colores),但是我希望每次启动程序时,此列表将其随机排列成一个颜色。我正在搜索一种colores.Disort()的方法,但该方法不存在。

有什么想法吗?

我要排序的数组是:

Color[] colores = new Color[] { 
    Color.FromArgb(128, 128, 255),
    Color.FromArgb(255, 128, 128),
    Color.FromArgb(255, 192, 128),
    Color.FromArgb(255, 255, 128),
    Color.FromArgb(255, 255, 128),
    Color.MediumPurple};

PD:我不希望使用多行方法,而只是一种简短方法。颜色不应该重复。

谢谢您的时间!

1 个答案:

答案 0 :(得分:1)

var rnd = new Random();
var randomColors = colores.OrderBy(color => rnd.Next());

请考虑阅读SO Post,了解此方法的有效性。

Is using Random and OrderBy a good shuffle algorithm?