怎样将numbers中的值 循环每次取出一个
// 最小数
var min = 15;
// 最大数
var max = 20;
// 要生成数的个数
var digits = 30;
// 最小出现次数
var minOccurrences = 1;
// 生成的数的集合
var numbers = new List<int>();
// 先确保从最大数到最小数递减至少都有一个数
numbers.AddRange(Enumerable.Range(15, max - min + 1).SelectMany(x => Enumerable.Repeat(x, minOccurrences)));
// 查看结果
Console.WriteLine(string.Join(",", numbers));
// 计算需要补位多少个数
var fillGap = digits - (max - min + 1) * minOccurrences;
Console.WriteLine($"需要补位{fillGap}个数");
var random = new Random();
// 生成补位的数
for (var i = 0; i < fillGap; i++)
{
numbers.Add(random.Next(min, max + 1));
}
numbers = numbers.OrderByDescending(x => x).ToList();
Console.WriteLine($"生成的集合元素个数:{numbers.Count}");
Console.WriteLine(string.Join(",", numbers));