如何在 C# 中生成由字母和数字组成的随机字符串?
大家好!我是一名 C# 初学者开发者,正在编写一个用于生成临时密码的小应用程序。我需要创建由拉丁字母(a-z、A-Z)和数字(0-9)组成的随机字符串。字符串长度应该是可变的,例如 8 或 12 个字符。
我尝试使用标准的 Random 类,但遇到了问题:生成的字符串不够随机,有时在快速调用方法时甚至会重复。以下是我当前的代码:
```csharp
public static string GenerateString(int length)
{
string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string result = "";
Random random = new Random();
for (int i = 0; i < length; i++)
{
int index = random.Next(chars.Length);
result += chars[index];
}
return result;
}
```
这个方法可以工作,但我注意到如果连续多次调用它,前几个字符经常相同。另外,我担心的是每次调用都创建一个新的 Random 实例。