我發現這個代碼的snippet生成一串隨機字符。這是一個生成一串隨機字符的好方法嗎?
但是,有沒有更優雅/更快/更可靠的方法來做到這一點?這似乎依賴於數字26-91是給定當前編碼的有效字符的事實。
/// <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();
}
它不依賴於當前的編碼 - Convert.ToChar *總是*使用Unicode,不管系統默認編碼。它在很多其他方面雖然很難看,但:) :) – 2009-06-10 16:26:41