如何在 c# 中生成没有重复(字符)的随机 26 长度字符串

本文关键字:字符 随机 字符串 | 更新日期: 2024-10-31 11:08:22

 Random rnd = new Random();
        string[] coupon = new string[26];
        for (int i = 0; i < coupon.Length; i++)
        {
            coupon[i] = GenerateCoupon(26, rnd);
        }
        textBox1 .Text=(String.Join(Environment.NewLine, coupon));

*****功能***********''

  public static string GenerateCoupon(int length, Random random)
    {
        string characters = "abcdefghijklmnopqrstuvwxyz";
        StringBuilder result = new StringBuilder(length);
        {
            result.Append(characters[random.Next(characters.Length)]);
            return result.ToString();
        }

代码生成的字符串:

Kheeuasampxqxmoohcrufznugp

vrlncvbftinynhdufjdikacjsi

vblltkxeeapymbprtgaiojqkte

qyfvpcvtazuiodbidcfgwcssgw

ijtlkbrpuyzilndsaqxlrxhggo

Emhngmostlapotqziciursddcc

vvflcnewwehgsntstrskbduroe

但是我需要一个代码来生成具有 26 个字符长度且没有重复字符的字符串:

abcdefghijklmnopqrstuvwxyz

Zyxwvutsrqponmlkjihgfedcba

mnbvcxzasdfghjklpoiuytrewq

qazwsxedcrfvtgbyhnujmikolp

Bhuijnmkoplqazxswedcvfrtgb

如何在 c# 中生成没有重复(字符)的随机 26 长度字符串

你可以使用Fisher-Yates洗牌,或者简单地使用

Random rnd = new Random();
var newstr = String.Concat("abcdefghijklmnopqrstuvwxyz".OrderBy(x => rnd.Next()));

看看一些随机算法并将其应用于您的字符集。

你可以

只有一串a-z。例如:"abcdefghijklmnopqrstuvwxyz"。

之后,根据每个字母的索引随机洗牌字符串。