关于sortedlist 中值的添加,删除,索引测试.

SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。

排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(Hashtable)。集合中的各项总是按键值排序。

 总结:用于坐标删除删除的是排序好的队列.跟删除数组差不多.

在项目两个列进行合并时可以使用这种方式,时间当键, 码当值,自动排序打印.但不能用sortedlist 因为键是唯一的,不能重复.

 项目要做两个txt内容比对.比如 a  b 两个txt

本来有这么个设想,

读取a txt 文件 一条数据,开着文件流不关闭.

读取b txt文件内容,文件流开着,每次读取比如十个数.达到20数后清空前十个,保留后十个作为继续让a的数据比对,因为数据相同的位置相差不多.比如a文件有个值100,假如b文件也有这个100的话,那b文件的100这个值在这个文件中的位置跟A中100的位置差不多,项目是两个读码器同时读一条线的数据,作为相互补充,上道读码器和下道读码器中间隔着一米左右,最终所以想优化成这个效果.

使用soredlist 删除读取的btxt slist时,比如删除5个

用到

for (int i = 0; i < 5; i++)
{

//把即将删除的添加到另一个队列.作为即将保存的
differlist.Add(n_readlist.GetKey(i), n_readlist.GetByIndex(i));

//开始删除

n_readlist.RemoveAt(i);
}

1:错误1:上边这种方法是不适合这种项目需求的.

因为add之后,里边的值是按照序列排序了,位置变化了.所以本来想删除第一个加进来的,可能把别的值删除掉了

2:错误2: 上边的循环写法错误,因为每次删除之后,循序上移,原先的1位置的值移到了0位置.循环到第二次的时候删除的值实际是 最开始的第三个值,而第二个值被漏掉了.

如图:循环到第二次时, 实际要求删除第一个值.如图删除前

删除后第一个值还存在,第二个值没了.

 而下边是字典dictionary 加入的数值之后的数据结构,两列中间用逗号隔开,起边多了一项排序数值,而且数据顺序没有变化.

原文地址:https://www.cnblogs.com/zuochanzi/p/6812806.html