2010-05-14 102 views
3

看起来SortedList被排除在外..您认为最适合现有集合之外的什么? (保持相同的快速访问和更改)SortedList移植到Silverlight

silverlight字典可以永久排序吗?

问候 VLK

回答

0

要回答你的问题:第字典里没有重要保障订购的商品。

但是List<T>支持BinarySearch方法。这可以帮助你实现SortedList的类似目标。

该文档有一个很好的例子,说明这基本上是如何实现的。请参阅: -

List<T>.BinarySearch Method (T)

+0

谢谢,还是文档说: 列表必须按照比较器的实现进行排序;否则,结果不正确。 – VLK 2010-05-14 17:57:17

+0

啊,你的想法是保持列表总是按照BinarySearch给出的位置插入。 hm,我将检查插入时间对集合大小的依赖性。 – VLK 2010-05-14 18:01:08

0

你可以看看在Wintellect的Power Collections。这个库在EPL下是免费的。我认为OrderedMultiDictionary会为你解决问题。你应该可以在Silverlight下编译它。我已经使用了几年,但是使用这个库(和Richter的线程库)来进行WPF项目。

编辑:

玩弄这个看起来你需要做一些工作来获得动力集合,以在Silverlight后做事。

0

我没有silverlight的解决方法是用KeyValuePair类型创建一个通用列表,然后对列表进行排序。

List<KeyValuePair<int, string>> sampleList = new List<KeyValuePair<int, string>>(); 

//Assuming you have a set of objects in an array or list 
foreach(var item in items) 
{ 
    sampleList.Add(new KeyValuePair<int, string>>(item.ID, item.Description)) 
} 

sampleList = sampleList.OrderBy(data => data.Key).ToList(); 

效果与使用排序列表相同。