创建随机字符串并存储在数组中

时间:2014-12-20 07:23:53

标签: c# arrays

所以我有办法创建我在这个网站上找到的随机字符串,但我不知道如何将每个字符串存储在一个数组中。

 var chars = "abcdefghijklmnopqrstuvwxyz123456789";
            var random = new Random();
                for (int i=0; i < 50; i++)
             {
                var result = new string(
    Enumerable.Repeat(chars, 4)
              .Select(s => s[random.Next(s.Length)])
              .ToArray());                 
            }

也许它与.ToArray());有关,但我不知道它来自哪里。什么甚至是Enumerable.Repeat

2 个答案:

答案 0 :(得分:1)

创建包含4个随机字符的50个字符串的数组:

var chars = "abcdefghijklmnopqrstuvwxyz123456789";
var random = new Random();

var stringArray =
    Enumerable.Repeat(0, 50)
    .Select(i => new string(
        Enumerable.Repeat(chars, 4)
        .Select(s => s[random.Next(s.Length)])
        .ToArray()))
    .ToArray();

答案 1 :(得分:0)

你没有对result做任何事情 - 它只是在你的循环中超出范围。它是由4个随机字符组成的单个字符串。

Enumerable.Repeat创建一系列重复字符串引用的字符&#39; (4份),然后由Random用来从每个字符串中获取单个字符。

您可以使用Enumerable.Range投影包含4个字符的50个随机字符串的数组,每个字符串不带for循环。此外,该算法不需要创建4个字符串引用 - 我们可以引用原始字符串。

var chars = "abcdefghijklmnopqrstuvwxyz123456789";
var random = new Random();
var result = Enumerable.Range(0,50)
    .Select(i => new string(
        Enumerable.Range(0, 4)
            .Select(x => chars[random.Next(chars.Length)])
            .ToArray()));