C#中的List和IList有什么区别?

C#中List和IList之间的主要区别在于List是一个类,它表示可以由索引访问的对象的列表,而IList是一个接口,它表示可以由索引访问的对象的集合。IList接口由两个接口实现,它们是ICollection和IEnumerable。

List和IList用于表示一组对象。它们可以存储整数,字符串等对象。有些方法可以插入,删除元素,搜索和排序List或IList的元素。List和IList之间的主要区别在于List是一个具体的类,而IList是一个接口。总体而言,List是实现IList接口的具体类型。

例子1

using System;
using System.Collections.Generic;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         IList<string> ilist = new IList<string>();
         //这将引发错误,因为我们不能为IList创建实例,因为它是一个接口。
         ilist.Add("Mark");
         ilist.Add("John");
         foreach (string list in ilist){
            Console.WriteLine(list);
         }
      }
   }
}

例子2

using System;
using System.Collections.Generic;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         IList<string> ilist = new List<string>();
         ilist.Add("Mark");
         ilist.Add("John");
         List<string> list = new List<string>();
         ilist.Add("Mark");
         ilist.Add("John");
         foreach (string lst in ilist){
            Console.WriteLine(lst);
         }
         foreach (string lst in list){
            Console.WriteLine(lst);
         }
         Console.ReadLine();
      }
   }
}

输出结果

上面代码的输出是

Mark
John
Mark
John