[TOC]

快速列表

快速列表按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。

快速列表宏观上是一个双向链表,微观为数组。相对于传统列表,避免了修改造成的大规模的数据迁移。

可用方法

  • Add
  • Clear
  • Count
  • First
  • GetRange
  • InsertAfter
  • InsertBefore
  • Last
  • Length
  • Pop
  • Push
  • Remove
  • ReverseIterator
  • Shift
  • Trim
  • UnShift

Add

将element插入到列表尾部。

quicklist.Add("hello world");

Clear

清空快速列表

quicklist.Clear();

Count

获取快速列表的element数量。

var num = quicklist.Count;

First

获取快速列表中的第一个元素。如果有序集为空则引发InvalidOperationException异常。

var element = quicklist.First();

GetRange

获取区间内的所有element。

var range = quicklist.GetRange(10,20);

InsertAfter

在指定element之后插入新的element。

quicklist.InsertAfter("hello world" , "new hello world");

InsertBefore

在指定element之前插入新的element。

quicklist.InsertBefore("hello world" , "new hello world");

Last

获取快速列表中的最后一个元素。如果有序集为空则引发InvalidOperationException异常。

var element = quicklist.Last();

Length

获取快速列表的节点数量。(快速列表宏观上为双向链表,每个节点可以有N个element)

var num = quicklist.Length;

Pop

移除并返回列表尾部的element。如果列表为空则引发InvalidOperationException异常。

var element = quicklist.Pop();

Push

将element插入到列表尾部。(和Add是等价的)

quicklist.Push("hello world");

Remove

根据参数count的值,移除列表中与参数element相等的元素。如果 count > 0从表头开始向表尾搜索,移除与element相等的元素,数量为count。如果 count = 0从表头开始向表尾搜索,移除全部与element相等的元素。如果 count < 0从表尾开始向表头搜索,移除与element相等的元素,数量为count。

返回值为被移除元素的数量。

var num = quicklist.Remove("hello world" , 10);

ReverseIterator

反转迭代器迭代顺序。

注意,这并不是真正意义反转整个快速列表,只是反转了迭代顺序。

quicklist.ReverseIterator();

Shift

移除并返回列表头部的element。如果列表为空则引发InvalidOperationException异常。

var element = quicklist.Shift();

Trim

对列表进行修剪,只保留下标范围内的元素(包括min和包括max)。返回值为被移除元素的数量。

quicklist.Trim(10,200);

UnShift

将element插入到列表头部。

quicklist.UnShift("hello world");