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

本文关键字:数组 存储 串并 随机 字符 字符串 创建 | 更新日期: 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()));