J'ai développé un générateur de chaînes aléatoires mais il ne se comporte pas tout à fait comme je l'espérais. Mon objectif est de pouvoir exécuter ceci deux fois et générer deux chaînes aléatoires distinctes de quatre caractères. Cependant, il génère juste une chaîne aléatoire de quatre caractères deux fois.
Voici le code et un exemple de sa sortie :
private string RandomString(int size)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
return builder.ToString();
}
// obtenir la 1ère chaîne aléatoire
string Rand1 = RandomString(4);
// obtenir la 2ème chaîne aléatoire
string Rand2 = RandomString(4);
// créer la chaîne aléatoire complète
string docNum = Rand1 + "-" + Rand2;
...et la sortie ressemble à ceci : UNTE-UNTE ...mais elle devrait ressembler à quelque chose comme ceci UNTE-FWNU
Comment puis-je m'assurer que deux chaînes aléatoires distinctes soient générées ?
0 votes
stackoverflow.com/questions/4616685/… Bonne performance
3 votes
Notez que même deux chaînes parfaitement aléatoires ne sont pas garanties d'être uniques. Avec de longues chaînes (120+ bits), il est extrêmement probable qu'elles soient uniques, mais avec des chaînes courtes comme celle-ci, les collisions sont courantes.
0 votes
Ancien fil de discussion mais ... si cela convient, vous pouvez générer un GUID et le convertir en texte.