J'ai trouvé ce snippet de code qui génère une chaîne de caractères aléatoires.Est-ce un bon moyen de générer une chaîne de caractères aléatoires?
Mais y a-t-il une manière plus élégante/plus rapide/plus fiable de faire ceci? Cela semble reposer sur le fait que les chiffres 26 à 91 sont des caractères valides étant donné l'encodage actuel.
/// <summary>
/// Generates a random string with the given length
/// </summary>
/// <param name="size">Size of the string</param>
/// <param name="lowerCase">If true, generate lowercase string</param>
/// <returns>Random string</returns>
private string RandomString(int size, bool lowerCase)
{
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);
}
if(lowerCase)
return builder.ToString().ToLower();
return builder.ToString();
}
Il ne repose pas sur l'encodage en cours - Convert.ToChar * toujours * utilise Unicode, quelle que soit la encodage par défaut du système. C'est moche de bien d'autres façons cependant :) –