C#SortedList可重复键的排序键/值对集合
代码
西丰网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
public class Cost
{
public double cost;
public int id;
}
public class CostComparer : IComparer
{
public int Compare(Cost x, Cost y)
{
if (x.cost - y.cost < 1e-10)
{
return -1;
}
else
{
return 1;
}
}
}
错误的写法:
SortedList
SortedList
错误提示:
非泛型 类型“System.Collections.SortedList”不能与类型实参一起使用
可行的写法,浪费存储空间,SortedList并没有提供直接根据索引访问集合元素的方法,所以只能够通过其他的方法访问:
SortedList
Cost c1 = new Cost();
c1.cost = 20;
c1.id = 30;
list.Add(c1, c1);
Cost c2 = new Cost();
c2.cost = 10;
c2.id = 40;
list.Add(c2, c2);
//方法一GetEnumerator
IEnumerator
iter.MoveNext();
Cost tmpKey = iter.Current.Key;
Cost tmpValue = iter.Current.Value;
//方法二foreach
foreach (KeyValuePair
{
Cost tmpKey = t.Key;
Cost tmpValue = t.Value;
}
删除某个索引键值对: list.RemoveAt(0);
但是为了简单起见,实际上,只是对Cost中的cost字段进行排序,并且支持重复插入,可以使用SortedSet
SortedSet
文章标题:C#SortedList可重复键的排序键/值对集合
文章URL:http://hbruida.cn/article/jspidi.html