如何在 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. 我不确定这种方法的安全性如何。