在C#中生成数字列表
我经常需要生成数字列表。 间隔可以有相当多的数字。 我有这样的一个方法:
public static int[] GetNumbers(int start, int end) { List<int> list = new List<int>(); for (int i = start; i < end; i++) list.Add(i); return list.ToArray(); }
有没有办法让它更简单,更快?
我正在使用.NET 3.5
这可能会更快一些 – 当然更简单:
int[] values = Enumerable.Range(start, end - start).ToArray();
你确实需要它作为一个数组虽然? 如果只需要遍历它,就可以直接使用Enumerable.Range
来获得一个IEnumerable<int>
,它永远不需要实际同时保存所有的数字。