有序集

有序集合和集合一样也是元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个可以被排序的分数。

有序集合是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数却可以重复。

可用方法

Add

添加一个element到有序集合,或者如果它已经存在则更新其分数,并排序到正确的位置上。

  1. sortset.Add("this is element" , 10);

Clear

清空有序集中的所有元素。

  1. sortset.Clear();

Count

获取有序集的element数量。

  1. var num = sortset.Count;

Contains

判断有序集中是否存在element

  1. var isExists = sortset.Contains("this is element");

First

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

  1. var element = sortset.First();

GetElementByRank

根据排名获取元素 (有序集成员按照Score从小到大排序)

  1. var element = sortset.GetElementByRank(10);

GetElementByRevRank

根据排名获取元素 (有序集成员按照Score从大到小排序)

  1. var element = sortset.GetElementByRevRank(10);

GetElementRangeByRank

根据排名获取范围内的元素列表,排序按照排名从小到大。(默认包括等于minmax)

  1. var list = sortset.GetElementRangeByRank(10,20);

GetElementRangeByScore

根据分数获取范围内的元素列表,排序按照分数从小到大。(默认包括等于minmax)

  1. var list = sortset.GetElementRangeByScore(100,200);

GetScore

返回有序集中element的分数,如果element不存在则引发KeyNotFoundException

  1. var score = sortset.GetScore("this is element");

GetRank

获取element的排名 , 有序集成员按照Score从小到大排序。如果返回-1则表示没有找到元素。

  1. var rank = sortset.GetRank("this is element");

GetRevRank

获取element的排名 , 有序集成员按照Score从大到小排序。如果返回-1则表示没有找到元素。

  1. var rank = sortset.GetRevRank("this is element");

GetRangeCount

获取分数区间内的元素数量。(默认包括等于minmax)

  1. var num = sortset.GetRangeCount(10,100);

Last

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

  1. var element = sortset.Last();

Pop

移除并返回有序集尾部的元素。如果有序集为空则引发InvalidOperationException异常。

  1. var element = sortset.Pop();

Remove

移除有序集合中的指定的element,如果移除失败则返回false

  1. var isSuccess = sortset.Remove("this is element");

RemoveRangeByRank

根据指定的排名范围移除范围内的所有element,并返回移除元素的数量。(默认包括等于minmax)

  1. int remove = sortset.RemoveRangeByRank(1020);

RemoveRangeByScore

根据指定的分数范围移除范围内的所有element,并返回移除元素的数量。(默认包括等于minmax)

  1. int remove = sortset.RemoveRangeByScore(100200);

ReverseIterator

反转迭代器迭代顺序。

注意,这并不是真正意义反转整个有序集,只是反转了迭代顺序。

  1. sortset.ReverseIterator();

Shift

移除并返回有序集头部的元素。如果有序集为空则引发InvalidOperationException异常。

  1. var element = sortset.Shift();

ToArray

将有序集转为数组。

  1. var array = sortset.ToArray();