C#數組和集合互相轉換的幾種方法的效率分析

來源:互聯網
上載者:User

本文的轉載地址:http://www.shuonar.com/blog/6499c306-7f2d-45b2-8f43-577280ab99cd.html

在很多時候,我們需要將list集合轉換為數組,或者數群組轉換為list,我今天測試了一下將資料轉換為list的三種方法的效率,我們驗證下面這個數組:

                            int[]testArray = new int[100000000];

           for (int i = 0; i < 100000000; i++)

           {

                testArray[i] = i;

           }

         注意,數組裡面的內容放多點,這樣才看得出效果。

首先,我們看下使用linq的ToList<T>(),這個需要添加usingSystem.Linq;

           ///第一種:Linq

           DateTime startTime = DateTime.Now;

           List<int> list = testArray.ToList<int>();

           DateTime endTime = DateTime.Now;

           TimeSpan ts = endTime - startTime;

           Console.WriteLine("Linq: " + ts.Milliseconds +"ms");

在我的電腦裡面測試的結果是:Linq:124ms

         其次,我們使用for迴圈遍曆數組,然後把數組裡面的值賦值給一個已經申明好的list集合:

 

           ///第二種:for迴圈

           List<int> testData = new List<int>();

           DateTime startFor = DateTime.Now;

           for (int i = 0; i < testArray.Length; i++)

           {

                testData.Add(testArray[i]);

           }

           DateTime endFor = DateTime.Now;

           TimeSpan tsFor = endFor - startFor;

           Console.WriteLine("For :" + tsFor.Milliseconds +"ms");

在我的電腦裡面測試的結果是:For:920ms

         最後,我們使用foreach迴圈遍曆數組,同樣把數組裡面的值賦值給一個已經申明好的list集合:

           ///第三種:foreach迴圈

           List<int> foreachData = new List<int>();

           DateTime foreachstart = DateTime.Now;

           foreach (int i in testArray)

           {

                foreachData.Add(i);

           }

           DateTime foreachend = DateTime.Now;

           TimeSpan tsforeach = foreachend - foreachstart;

           Console.WriteLine("foreach :" + tsforeach.Milliseconds +"ms");

在我的電腦裡面測試的結果是:foreach:998ms

 

通過這三種方法,最終我們瞭解到linq運算元組轉集合的效率比遍曆操作的效率高出很多,當然當資料溢出記憶體時,這種方法就不能通用了。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.