我想填充随机数数组,但我想用扩展方法来做到这一点,结果我只有 500 个零。
public static IEnumerable<int> FillRandom(this IEnumerable<int> arr, int min, int max)
{
Random rndNum = new Random();
foreach (var item in arr)
{
yield return rndNum.Next(min, max);
}
}
int[] UndefinedNumbers = new int[500];
UndefinedNumbers.FillRandom(1, 100); //Executing extension method.
答案 0 :(得分:0)
你应该这样做:
public static void FillRandom(this List<int> arr,int count, int min, int max)
{
Random rndNum = new Random();
arr.Clear();
foreach (int i = 0; i < count; count++)
{
arr.Add(rndNum.Next(min, max));
}
}
List<int> temp = new List<int>();
temp.FillRandom(10, 0, 20);
答案 1 :(得分:0)
您的扩展方法没有填充给定的数组,而是返回新的可枚举。
var undefinedNumbers = new int[500];
var randomNumbers = undefinedNumbers.FillRandom(1, 100);
object.ReferenceEquals(undefinedNumbers, randomNumbers); // returns false
要填充给定数组,将参数类型更改为
public static int[] FillRandom(this int[] array, int min, int max)
{
Random rndNum = new Random();
for(var i = 0; i < array.Length; i++)
{
array[i] = rndNum.Next(min, max);
}
}
用法
int[] randomNumbers = new int[500].FillRandom(1, 100);