📜  IList 实例化 (1)

📅  最后修改于: 2023-12-03 14:42:04.575000             🧑  作者: Mango

IList 实例化

IList 是一个接口,它是由一组具有相同类型的元素所组成的列表(类似于数组)。这个接口可以被实现用于所有的数据类型。在 .NET Framework 中,有许多种类型的 IList 实现,例如:ArrayList,List,CollectionBase,和 BindingList等。

ArrayList

ArrayList 是一个 IList 实现,由一组元素所组成的动态数组。当列表的大小超过其初始容量时,ArrayList 会自动增加其大小。然而,由于 ArrayList 存储的是 object 类型,因此使用时需要进行强制类型转换。以下是 ArrayList 实例化的示例:

ArrayList arrayList = new ArrayList()
{
    "a",
    "b",
    "c"
};
List

List 是一个泛型 IList 实现,可以包含指定类型的元素。与 ArrayList 不同,由于 List 是泛型类型,因此不需要进行类型转换。以下是 List 实例化的示例:

List<string> list = new List<string>()
{
    "a",
    "b",
    "c"
};
CollectionBase

CollectionBase 是一个抽象类,它提供了对 IList 接口的实现。您可以通过继承 CollectionBase 来创建 IList 派生类。以下是 CollectionBase 实例化的示例:

public class MyList : CollectionBase
{
    public string this[int index]
    {
        get { return (string)List[index]; }
        set { List[index] = value; }
    }

    public void Add(string item)
    {
        List.Add(item);
    }

    public void Remove(string item)
    {
        List.Remove(item);
    }
}
BindingList

BindingList 是一个泛型 IList 实现,提供了对数据绑定的支持。BindingList 允许你为其数据源添加元素、删除元素、以及进行数据源的更改通知。以下是 BindingList 实例化的示例:

BindingList<string> bindingList = new BindingList<string>()
{
    "a",
    "b",
    "c"
};

总结:IList 接口提供了一个可扩展的、可通过索引访问的列表,其实现有很多种类型,包括 ArrayList,List,CollectionBase,和 BindingList 等等。无论哪个实现方式,都需要遵循 IList 接口的规范。