unity3D C# 在区间内生成不重复的随机数
1、使用哈希表
/// <summary>
/// 生成随机数
/// </summary>
/// <param name="num">随机数个数</param>
/// <param name="min">最小随机数</param>
/// <param name="max">最大随机数</param>
/// <returns></returns>
public static Hashtable GetHashtableRandomNum(int num, int min, int max)
{
System.Random random = new System.Random();
Hashtable hashtable = new Hashtable();
for (int i = 0; hashtable.Count < num; i++)
{
int nValue = random.Next(min, max);
if (!hashtable.ContainsValue(nValue) && nValue != min)
{
hashtable.Add(i, nValue);
}
}
return hashtable;
}
/// <summary>
/// 遍历表中数据
/// </summary>
public static void PrintNum()
{
Hashtable hashT = GetHashtableRandomNum(5, 0, 50);
foreach (int t in hashT.Values)
{
print(t);
}
}