gpt4 book ai didi

c# - 不重复的随机字符串生成器

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:37 25 4
gpt4 key购买 nike

我一直在使用这个随机字符串生成器。但我的问题是这个随机字符串生成器在重复自己。我听说过使用 shuffle 方法,但我不知道如何在我的代码中实现它。任何帮助将不胜感激。

private static Random random = new Random();
public static string RandomString(int length)
{
const string chars = "0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}

public static string RandomString2(int length)
{
const string chars = "AB";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}

然后在页面加载中我实际上调用了我的 2 个方法并将它们组合在一个文本框中。

string dummy = RandomString(1);
string dummy2 = RandomString2(1);
txtTagNumber.Text = dummy2.ToString() + dummy.ToString();

最佳答案

这可能对您有用。

Random random = new Random();
const string numchars = "0123456789";
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
List<string> randStr = new List<string>();
for(int i = 0; i <= 10; i++)
{
string AlphaRandom = new string(Enumerable.Repeat(chars, 1)
.Select(s => s[random.Next(s.Length)]).ToArray());

string NumberRandom = new string(Enumerable.Repeat(numchars, 1)
.Select(s => s[random.Next(s.Length)]).ToArray());

if(randStr.Contains(AlphaRandom + NumberRandom))
{
i--;
}
else
{
randStr.Add(AlphaRandom + NumberRandom);
Console.WriteLine(randStr[i]);
}
}

创建了一个随机类型的 random,然后取 2 个字符串,一个用于字母,另一个用于数字。创建了一个字符串列表以将所有生成的随机字符串添加到其中。在循环中,我试图生成 10 个随机字符串。检查随机字符串列表是否包含先前生成的字符串。如果是,则减少 i 的值,这样它仍会生成 10 个字符串。如果没有找到匹配项,那么随机字符串将被添加到列表中。

希望对你有帮助

关于c# - 不重复的随机字符串生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40733191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com