这个问题困扰了我很久,定义两个变量
IList<string> list1=new List <string>();
List<string> list2 =new List <string>();
怎么也看不出他俩的区别,在使用这两个变量时,虽有稍许不同,但功能该有的都有。
而且经测试,list2数据处理排序遍历都会比list1快,那IList类型为什么还会存在呢?
今天看技术问答,看到一个问题,在帮他想答案的时候,突然意识到一个IList的作用。
问题是,他想定义一个队列,队列中的元素是List,但List的类型不一样。
没多想,就作答了:
Queue<IList> quere = new Queue<IList>();
List<string> stringList = new List<string>();
List<int> intList = new List<int>();
quere.Enqueue(stringList);
quere.Enqueue(intList.ToArray());
看出来了吧,IList是可能单独出现的
因为IList是List<string>和List<int>的父类,所以他们的变量才能加入到队列中。
所以准确的说,应该把本文的标题改为 IList与List<T>的区别。