0
点赞
收藏
分享

微信扫一扫

C#中Array和List的性能比较

using System;
using System.Collections.Generic;
using System.Diagnostics;

namespace TestListArrayPerformance
{
class Program
{
static void Main(string[] args)
{
//const int COUNT = 1000;
const int COUNT = 10000000;

//Test string's performance
//string[] array = new string[COUNT]; // Volumn is predefined
//Test integers' performance
int[] array = new int[COUNT]; // Volumn is predefined

//Test string's performance
//List<string> list = new List<string>(); // Volumn is changable
//Test integers' performance
List<int> list = new List<int>(); // Volumn is changable

Console.WriteLine("The count of the elements is: {0}. \n", COUNT);

Console.Write("Total time cost for an Array initialization is: ");

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

for (int i = 0; i < COUNT; i++)
{
//Test string's performance
//array[i] = i.ToString();

//Test integers' performance
array[i] = i;
}


stopWatch.Stop();
Console.Write(stopWatch.ElapsedMilliseconds.ToString() + "ms.");

stopWatch.Reset();
stopWatch.Start();
Console.WriteLine("\n");

for (int i = 0; i < COUNT; i++)
{
//Test string's performance
//list.Add(i.ToString());

//Test integers' performance
list.Add(i);
}

stopWatch.Stop();
Console.Write("Total time cost for a List initialization is: ");
Console.Write(stopWatch.ElapsedMilliseconds.ToString() + "ms.");
stopWatch.Reset();

Console.ReadKey();
}
}
}


结论

  1. 在数据量庞大的时候List的性能比Array的性能低;
  2. 在数据量较小的时候List的性能和Array的性能基本上差不多;
  3. 在数据量小或者长度不可知的情况下推荐使用List,因为其长度是可变的;
  4. 在数据量大或者数据量的长度明确的情况下推荐使用Array,因为这样可以提高性能。


相关链接

​​List源码​​

​​Array源码​​


作者:艾孜尔江



举报

相关推荐

0 条评论