向后复制数组?大批。复制?我有一个列表,我希望能够将其向后复制到数组中,这意味着从List.Count开始,然后从列表末尾复制5个项目并向后工作。我可以用一个简单的反向循环来做到这一点;但是,可能有更快/更有效的方法,所以我想我应该问一下。我以某种方式使用Array.Copy吗?最初我使用的是队列,因为它以我需要的正确顺序弹出它,但我现在需要一次将多个项目弹出到一个数组中,我认为列表会更快。看起来Array.Reverse具有用于反转数组的本机代码,这有时不起作用并且会回退到使用简单的for循环。在我的测试中,Array.Reverse比简单的for循环要快一点。在将1,000,000个元素的数组反转1000次的测试中,Array.Reverse约为600毫秒,而for循环约为800毫秒。我不建议将性能作为使用Array.Reverse的理由。这是一个非常小的差异,一旦将它加载到列表中,就会丢失它,它将再次遍历数组。在任何情况下,您都不必担心性能问题,直到您分析了您的应用程序并确定了性能瓶颈。publicstaticvoidTest(){vara=Enumerable.Range(0,1000000).ToArray();varstopwatch=Stopwatch.StartNew();for(inti=0;i<1000;i++){Array.Reverse(a);}秒表.Stop();Console.WriteLine("ElapsedArray.Reverse:"+stopwatch.ElapsedMilliseconds);秒表=秒表.StartNew();for(inti=0;i只能是一个简单的for循环做得更快。你可以通过多种方式做到这一点,但最快的方法是以完全相同的方式获取元素。您可以使用Array.Reverse、Array.Copy等,或者您可以使用LINQ和扩展方法,两者都是有效的替代方法,但它们不应该更快。在您的评论之一中:目前,我们正在获取一个结果,并一次将其提交到一个数据库。使用for循环向后遍历List与一次将记录提交到一个数据库之间存在很大差异。前者很好;没有人支持后者。为什么不先迭代-填充一个数组-然后将该数组发送到数据库,全部填充?以上就是C#学习教程:向后复制一个数组?大批。复制?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注---varmyArray=newT[numItemsYouWantToSend];intarrayIndex=0;for(inti=myList.Count-1;arrayIndex本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载,请注明出处:
