C# - 随机化Linq项目

时间:2016-04-11 22:49:24

标签: c# linq

我如何随机化linq项目?

            var words = new[] { "a", "b", "c", "d" };
        richTextBox1.AppendText(Environment.NewLine + words);

它有(Environment.NewLine + words);的地方 我想随机化什么词。例如,这些可能是输出:

bcad,ac,da,cab,abb,

例如。

3 个答案:

答案 0 :(得分:0)

您可以使用此获取随机顺序。

Random rand =new Random();
words.OrderBy(x => rand.Next()).ToArray()

要删除,您需要弄明白自己。也看起来你想要重复,但这应该让你开始。

这将取前0到4

words.OrderBy(x =>rand.Next()).Take(rand.Next(0,4)).ToArray()

答案 1 :(得分:0)

您可以执行以下操作:

var newWords = new List<string>();
while(Random.Range(0,someProbability) != 0){
    newWords.Add(words[Random.Range(0,words.Length)]);
}
words = newWords.ToArray();

其中someProbability决定你的新词可能有多长。

答案 2 :(得分:0)

生成随机单词的简单方法是:

public static string RandomString(int length)
{
    const string chars = "abcdefghijklmnopqrstuvwxyz";
    var random = new Random(Guid.NewGuid().GetHashCode());
    return new string(
        Enumerable.Repeat(chars, length)
        .Select(s => s[random.Next(s.Length)]).ToArray());
}