时间:2021-05-25
之前一直认为因为List内部实现是数组,ToArray的实现只是将数组返回出去而已。
今天测了一下发现并不是那样
var a = new List<int>();for (int i = 0; i < 10000; i++){a.Add(i);}DebugHelper.StartWatch();foreach (var i in Enumerable.Range(0, 10000)){a.ToArray();}DebugHelper.StopWatch();1万数量大小的List,调用1万次ToArray的时间消耗是417ms左右。
报着疑惑看了下源码,没想到它是把内部数组复制了一份再返回
public T[] ToArray(){T[] array = new T[this._size];Array.Copy(this._items, 0, array, 0, this._size);return array;}看来对于重复性操作,可以考虑直接缓存成全局变量,或者直接用List作为参数。
以上所述是小编给大家介绍的关于List.ToArray()方法的效率测试,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
对于遍历集合获取其对象,在这里总结的三种简单的方式方式一:将集合变为数组,后遍历数组 Object[]obj=list.toArray(); for(Obj
1.List转换成为数组。(这里的List是实体是ArrayList)调用ArrayList的toArray方法。toArraypublicT[]toArray
$A=Array.from(iterable):将iterable转化为数组,如果iterable定义了toArray方法,就调用这个方法,否则利用iterab
格式camelize|capitalize|underscore|dasherize|inspect变形toArray|succ|times这里面一个有用的方法
本文实例讲述了PHP中if和or运行效率对比。分享给大家供大家参考。具体实现方法如下:对if和or的运行效率进行了实例说明,感兴趣的朋友可以测试一下,这里我测试