我正在寻找用0到随机数字填充数组的方法.例如,从0到12或1999等.
当然,有一个for循环:
var arr = int[n];
for(int i = 0; i < n; i++)
{
arr[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
我可以使这种方法成为Array课堂的延伸.但是有更有趣的方法吗?
Chr*_*fer 30
这已经存在(返回IEnumerable,但如果需要,这很容易改变):
arr = Enumerable.Range(0, n);
Run Code Online (Sandbox Code Playgroud)
在我看来,最有趣的方式不是产生一个数组,而是IEnumerable<int>枚举相同的数字 - 它具有O(1)设置时间的好处,因为它推迟了实际循环的执行:
public IEnumerable<int> GetNumbers(int max) {
for (int i = 0; i < max; i++)
yield return i;
}
Run Code Online (Sandbox Code Playgroud)
这个循环遍历所有号码从0到max-1,返回他们一次一个-但它只能通过循环将当你真正需要它.
您也可以使用它GetNumbers(max).ToArray()来获得"正常"数组.
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |