C#封装发发生成指定范围内指定长度的随机数组,且数组之中没有重复的数字
时间: 2024-03-07 18:48:00 浏览: 82
可以使用C#中的Random类和List集合来实现这个问题。
以下是一个示例代码:
```csharp
public static int[] GenerateRandomArray(int length, int minValue, int maxValue)
{
if (maxValue - minValue < length)
{
throw new ArgumentException("maxValue - minValue must be greater than or equal to length");
}
Random random = new Random();
List<int> list = new List<int>();
while (list.Count < length)
{
int num = random.Next(minValue, maxValue);
if (!list.Contains(num))
{
list.Add(num);
}
}
int[] array = list.ToArray();
return array;
}
```
这个方法接受三个参数:数组长度、最小值和最大值。它首先检查给定的范围是否足够生成指定长度的数组,如果不是,则抛出ArgumentException异常。
然后,它创建一个Random对象,并使用一个List<int>对象来存储随机数。在循环中,它生成一个随机数,并检查它是否已经在List中出现过。如果没有,它就将它添加到List中。
最后,它将List转换为int数组,并返回该数组作为结果。
你可以像这样调用这个方法:
```csharp
int[] array = GenerateRandomArray(10, 1, 100);
```
这将生成一个长度为10的随机数组,其中每个元素的值都在1到100之间,且没有重复的数字。
阅读全文