从列表中选择uniqe项目

时间:2016-04-14 07:06:05

标签: c# wpf random

我在wpf应用程序中有这个颜色列表。 我想要的是每次调用函数时随机选择一种颜色,但我不希望选择一种颜色比按时更多。 这是我的代码,没有做我想要的。

 var polyline = new MapPolyline();
 polyline.Stroke = GetRandomPolylineColor();

private Brush GetRandomPolylineColor()
        {
            var brushes = new Brush[] 
            {       Brushes.Blue,
                 Brushes.Black,
                 Brushes.Red,
                 Brushes.Brown,
                 Brushes.Green,
                 Brushes.HotPink,
                 Brushes.Khaki,
                 Brushes.IndianRed,
                 Brushes.LimeGreen,
                 Brushes.Orange                               
            };

            var rnd = new Random();
            return brushes[rnd.Next(brushes.Length)];
        }

1 个答案:

答案 0 :(得分:3)

您所描述的内容称为无需替换的抽样。这已在SO帖Unique (non-repeating) random numbers in O(1)Algorithm for sampling without replacement中得到解答。