使用两个值之间的数字填充数组的最佳/最快方法是什么?

时间:2018-02-06 17:24:09

标签: vb.net

我有一个后台线程,它为数组添加数字,这个调用经常发生,所以我只是好奇,如果有更快的方法将数字添加到数组中?

我需要在两个值之间添加所有数字(取决于具体情况,值会有所不同),例1到4会增加1,2,3& 4。

但是,当我拨打电话时,它会添加更大的类似于500到1000等的数组,有时需要更长的时间,具体取决于需要添加的数量。

目前我正在使用类似的东西:

    Dim ListOfNumbers As New List(Of Integer)
    For i = 1 To 100000
        If ListOfNumbers.Contains(i) = False Then
            ListOfNumbers.Add(i)
        End If
    Next

我可以使用哪种方法可能更快?

(如果可能,避免数组中的重复值)

1 个答案:

答案 0 :(得分:2)

我怀疑这是否会推动您的计划的表现。此外,最佳选择可能取决于您计划如何使用这些数字,您可能会发现通过在整个代码中使用IEnumerable而不是数组,您实际上可以显着提高性能。

考虑到这一点,我建议这个选项:

({
    extendsFrom: "SubpanelListView",

    initialize: function(options){
        this._super("initialize", [options]);
        if (this.context.get("parentModule") == "Accounts"){
            this.context.set("limit",1);
        }
    }
})

如果需要,您可以稍后轻松删除int start = 1; int stop = 100000; var list = Enumerable.Range(start, stop - start).ToArray()

对于现有代码......您可以控制List和循环。检查ToArray()不是必需的,并且可能占用了执行时间的很大一部分。只需删除该检查。您还可以通过预先设置列表的大小来优化一些:

.Contains()