首页 > 代码库 > C# 泛型集合
C# 泛型集合
比较泛型集合和非泛型集合在运行中的效率:
using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ListDemo{ class Program { static void Main(string[] args) { Console.WriteLine("开始测试ArrayList:"); TestBegin(); TestArrayList(); TestEnd(); Console.WriteLine("开始测试List<T>:"); TestBegin(); TestGenericList(); TestEnd(); Console.Read(); } static int collectionCount = 0; static Stopwatch watch = null; private static int testCount = 10000000; static void TestBegin() { GC.Collect();//强制对所有代码进行即时垃圾回收 GC.WaitForPendingFinalizers();//挂起线程,执行终结器队列中的终结器(析构方法) GC.Collect();//再次对所有代码进行垃圾回收,主要包括从终结器队列中出来的对象 collectionCount = GC.CollectionCount(0);//返回在0代中执行的垃圾回收次数 watch = new Stopwatch(); watch.Start(); } static void TestEnd() { watch.Stop(); Console.WriteLine("耗时:" + watch.ElapsedMilliseconds); Console.WriteLine("垃圾回收次数:"+(GC.CollectionCount(0)-collectionCount)); } static void TestArrayList() { ArrayList al = new ArrayList(); int temp = 0; for (int i = 0; i < testCount; i++) { al.Add(i); temp = (int) al[i]; } al = null; } static void TestGenericList() { List<int> listT = new List<int>(); int temp = 0; for (int i = 0; i < testCount; i++) { listT.Add(i); temp = listT[i]; } listT = null; } }}
如果集合的数目固定并且不涉及转型,使用数组效率高否则就使用List<T>.
C# 泛型集合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。