【问题标题】:Generating numbers list in C#在 C# 中生成数字列表
【发布时间】:2011-09-22 21:44:31
【问题描述】:

我经常需要生成数字列表。间隔可以有很多数字。我有这样的方法:

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

【问题讨论】:

    标签: c# .net visual-studio .net-3.5


    【解决方案1】:

    这可能会更快一些 - 而且它肯定更简单:

    int[] values = Enumerable.Range(start, end - start).ToArray();
    

    你肯定需要它作为一个数组吗?如果你只需要迭代它,你可以直接使用Enumerable.Range,得到一个IEnumerable&lt;int&gt;,它不需要同时在内存中保存所有的数字。

    【讨论】:

    • 我的想法是,你不应该在运行时计算这些值而不是预先填充数组,因为它们只代表一个序列值吗?
    • @Caspar:这就是我提到只使用Enumerable.Range 的原因。这真的取决于OP想要用它做什么。例如,他可能会将其传递给需要列表或数组的方法 - 例如,对任何数组进行随机播放。
    • 如何生成类似 1、5、10、15、20 的内容?有什么内置的吗?
    猜你喜欢
    • 2015-12-09
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多