我有一个后台线程,它为数组添加数字,这个调用经常发生,所以我只是好奇,如果有更快的方法将数字添加到数组中?
我需要在两个值之间添加所有数字(取决于具体情况,值会有所不同),例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
我可以使用哪种方法可能更快?
(如果可能,避免数组中的重复值)
答案 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()