Avatar ·

如何在 C# 中生成由字母和数字组成的随机字符串?

大家好!我是一名初级 C# 开发者,遇到了一个问题:我需要生成由字母(拉丁字母,大小写)和数字组成的随机字符串。例如,用于创建临时密码或唯一标识符。 我尝试使用 `Random` 和 `StringBuilder`,但结果让我困惑。这是我的代码: ```csharp public static string GenerateRandomString(int length) { Random random = new Random(); string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; StringBuilder result = new StringBuilder(length); for (int i = 0; i < length; i++) { result.Append(chars[random.Next(chars.Length)]); } return result.ToString(); } ``` 看起来能工作,但我注意到几个问题: 1. 如果我连续多次调用该方法,有时会返回相同的字符串。 2. 无法保证字符串至少包含一个字母和一个数字(有时结果只由数字组成)。 3. 我不确定这种方法的安全性如何。