从C#中的字符串列表生成随机字符串?

时间:2011-10-19 05:24:16

标签: c# random

从字符串的Arraylist中获取'n'随机字符串。其中n =我想从列表中得到的字符串数量,它可以是1,2,3 ......?假设我想要选择随机四个字符串而不重复,我有N个字符串的数组列表。我该怎么做?代码应该在C#中。虽然我已经这样做了,但最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

Shuffling @ Coding Horror

答案 1 :(得分:1)

试试这个:

class Program
{
    static void Main(string[] args)
    {
        int myRandomIndex = 0;
        var myList = new List<string>(new[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" });
        var results = new List<string>();
        var r = new Random(DateTime.Now.Millisecond);
        for (int ii = 0; ii < 4; ii++)
        {
            myRandomIndex = r.Next(myList.Count);
            results.Add(myList[myRandomIndex]);
            myList.RemoveAt(myRandomIndex);
        }

        Console.WriteLine(string.Join("", results));
        Console.ReadKey();
    }
}

要保持每个选定的字符串唯一(防止重复),我会在使用时将其从源列表中删除。在使用列表之前,您还应该执行myList = myList.Distinct(),以确保您在开始时没有重复项。