在C#中,Random類用于生成偽隨機(jī)數(shù)。以下是Random類的常用方法和用法:
創(chuàng)建Random對(duì)象:
Random rand = new Random();
生成隨機(jī)整數(shù):
int randomNumber = rand.Next(); // 生成一個(gè)非負(fù)的隨機(jī)整數(shù)
int randomNumberInRange = rand.Next(minValue, maxValue); // 生成一個(gè)指定范圍內(nèi)的隨機(jī)整數(shù)
生成隨機(jī)浮點(diǎn)數(shù):
double randomDouble = rand.NextDouble(); // 生成一個(gè)位于 [0, 1) 區(qū)間的隨機(jī)浮點(diǎn)數(shù)
double randomDoubleInRange = minValue + (maxValue - minValue) * rand.NextDouble(); // 生成一個(gè)指定范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)
生成隨機(jī)字節(jié):
byte[] randomBytes = new byte[length];
rand.NextBytes(randomBytes); // 生成指定長(zhǎng)度的隨機(jī)字節(jié)數(shù)組
打亂列表的順序:
List<int> list = new List<int>(){1, 2, 3, 4, 5};
list = list.OrderBy(x => rand.Next()).ToList(); // 使用隨機(jī)數(shù)進(jìn)行排序,實(shí)現(xiàn)列表的隨機(jī)排列
請(qǐng)注意,Random類使用系統(tǒng)時(shí)間作為種子值,因此在循環(huán)中創(chuàng)建Random對(duì)象可能會(huì)導(dǎo)致生成相同的隨機(jī)數(shù)序列。為了解決這個(gè)問題,可以在啟動(dòng)應(yīng)用程序時(shí)創(chuàng)建一個(gè)Random對(duì)象,并在需要隨機(jī)數(shù)時(shí)重復(fù)使用它。