using System; using System.Collections.Generic; using System.Text; namespace 卡密生成器 { public class RandomStringGenerator { private static readonly string AlphanumericChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; private static HashSet<string> generatedStrings = new HashSet<string>(); public static List<string> GenerateRandomStrings(int count, int sum) { List<string> result = new List<string>(); while (result.Count < count) { string randomString = GenerateRandomString(sum); if (!generatedStrings.Contains(randomString)) { generatedStrings.Add(randomString); result.Add(randomString); } } return result; } private static string GenerateRandomString(int sum) { StringBuilder sb = new StringBuilder(); Random random = new Random(); for (int i = 0; i < sum; i++) { int index = random.Next(AlphanumericChars.Length); sb.Append(AlphanumericChars[index]); } return sb.ToString(); } } }
时间: 2024-02-10 21:15:21 浏览: 131
C#关于System.Collections空间详解
这是一个 C# 中用于生成随机字符串的类。该类的代码如下:
```csharp
using System;
using System.Collections.Generic;
using System.Text;
namespace 卡密生成器
{
public class RandomStringGenerator
{
// 随机字符集,包括大小写字母和数字
private static readonly string AlphanumericChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// 用于存储已经生成的随机字符串,避免重复
private static HashSet<string> generatedStrings = new HashSet<string>();
// 生成指定数量的随机字符串,每个字符串的长度为 sum
public static List<string> GenerateRandomStrings(int count, int sum)
{
List<string> result = new List<string>();
while (result.Count < count)
{
string randomString = GenerateRandomString(sum);
if (!generatedStrings.Contains(randomString))
{
generatedStrings.Add(randomString);
result.Add(randomString);
}
}
return result;
}
// 生成一个长度为 sum 的随机字符串
private static string GenerateRandomString(int sum)
{
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < sum; i++)
{
int index = random.Next(AlphanumericChars.Length);
sb.Append(AlphanumericChars[index]);
}
return sb.ToString();
}
}
}
```
代码解释:
第1-4行:引入命名空间,并定义一个名为 RandomStringGenerator 的公共类。
第6行:定义一个名为 AlphanumericChars 的静态只读字段,表示随机字符集。
第8行:定义一个名为 generatedStrings 的静态 HashSet 字段,用于存储已经生成的随机字符串,避免重复。
第10-18行:定义一个名为 GenerateRandomStrings 的公共静态方法,用于生成指定数量的随机字符串。
第11行:创建一个空的字符串列表,用于存储生成的随机字符串。
第12-17行:使用 while 循环,当字符串列表中的元素数量达到 count 时,停止循环。
第13行:生成一个随机字符串。
第14-16行:如果这个随机字符串没有出现过,则将其添加到字符串列表和已生成的字符串集合中。
第19-27行:定义一个名为 GenerateRandomString 的私有静态方法,用于生成一个长度为 sum 的随机字符串。
第20行:创建一个 StringBuilder 对象,用于存储生成的随机字符串。
第21行:创建一个 Random 对象,用于生成随机数。
第22-26行:使用 for 循环,生成随机字符串。在每次循环中,先生成一个随机数 index,然后从字符集中取出对应位置的字符,并将其添加到 StringBuilder 对象中。
第27行:返回 StringBuilder 对象中存储的随机字符串。
希望这个示例代码能够帮助您理解如何使用 C# 生成随机字符串。
阅读全文