创建随机字符串并存储在数组中
本文关键字:数组 存储 串并 随机 字符 字符串 创建 | 更新日期: 2023-09-27 18:34:43
所以我有一种方法可以创建我在这个网站上找到的随机字符串,但我不知道如何将每个字符串存储在数组中。
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
到底是什么?
要创建包含 50 个字符串的数组,每个字符串包含 4 个随机字符:
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();
> 你没有对result
做任何事情 - 它只是超出了你的循环范围。它是一个由 4 个随机字符组成的单个字符串。
Enumerable.Repeat
创建一个对"chars"(4 个副本(的重复字符串引用的集合,然后Random
使用它从每个字符串中获取单个字符。
您可以使用 Enumerable.Range
投影一个包含 50 个随机字符串的数组,每个字符串 4 个字符,没有 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()));