c# List vs SortedList vs LinkedList

List

  • The List class implements the ICollection, IEnumerable, IList, IReadOnlyCollection, IReadOnlyList, ICollection, IEnumerable, and IList interface.

  • 它可以接受 null 作为引用类型的有效值,也允许重复元素。

  • 如果 Count 等于 Capacity,则 List 的容量会通过重新分配内部数组自动增加。 在添加新元素之前,现有元素将被复制到新数组中。

  • 默认情况下,列表中的元素不排序,元素通过从零开始的索引访问。


SortedList

  • The SortedList class implements the IEnumerable, ICollection, IDictionary and ICloneable interfaces.

  • 在 SortedList 中,可以通过其键或索引来访问元素。

  • SortedList 对象在内部维护两个数组来存储列表的元素,即一个数组用于键,另一个数组用于关联值。

  • 在这里,键不能为空,但值可以。

  • SortedList 对象的容量是它可以容纳的键/值对的数量。

  • 在 SortedList 中,不允许有重复的键。

  • 在 SortedList 中,由于非泛型集合,您可以存储相同类型和不同类型的值。 如果您在程序中使用通用的 SortedList,则值的类型必须相同。

  • 在 SortedList 中,您不能将不同数据类型的键存储在同一个 SortedList 中,因为编译器会抛出异常。 因此,请始终在相同类型的 SortedList 中添加键。

  • 您还可以将 SortedList 的键/值对转换为 DictionaryEntry。


LinkedList

  • LinkedList 类实现了 ICollection、IEnumerable、IReadOnlyCollection、ICollection、IEnumerable、IDeserializationCallback 和 ISerializable 接口。

  • 它还支持枚举器。

  • 您可以在同一个列表或另一个列表中删除节点并重新插入它们,这样就不会在堆上分配额外的对象。

  • LinkedList 对象中的每个节点都属于 LinkedListNode 类型。

  • 它不支持链接、拆分、循环或其他可能使列表处于不一致状态的功能。

  • 如果 LinkedList 为空,则 First 和 Last 属性包含 null。

  • LinkedList 的容量是 LinkedList 可以容纳的元素数。

  • 在 LinkedList 中,允许存储相同类型的重复元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值