所以我有办法创建我在这个网站上找到的随机字符串,但我不知道如何将每个字符串存储在一个数组中。
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
?
答案 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()));