看起来SortedList被排除在外..您认为最适合现有集合之外的什么? (保持相同的快速访问和更改)SortedList移植到Silverlight
silverlight字典可以永久排序吗?
问候 VLK
看起来SortedList被排除在外..您认为最适合现有集合之外的什么? (保持相同的快速访问和更改)SortedList移植到Silverlight
silverlight字典可以永久排序吗?
问候 VLK
要回答你的问题:第字典里没有重要保障订购的商品。
但是List<T>
支持BinarySearch
方法。这可以帮助你实现SortedList
的类似目标。
该文档有一个很好的例子,说明这基本上是如何实现的。请参阅: -
你可以看看在Wintellect的Power Collections。这个库在EPL下是免费的。我认为OrderedMultiDictionary会为你解决问题。你应该可以在Silverlight下编译它。我已经使用了几年,但是使用这个库(和Richter的线程库)来进行WPF项目。
编辑:
玩弄这个看起来你需要做一些工作来获得动力集合,以在Silverlight后做事。
我将Wintellect Power Collections和C5泛型集合移植到Silverlight。我在这里提供 - http://jaykimble.net/powercollections-and-c5-collections-for-silverlight4.aspx。
我这样做主要是因为这个问题达到了我的兴趣。随意在任何你想使用它们的项目中使用它们。
我没有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();
效果与使用排序列表相同。
谢谢,还是文档说: 列表必须按照比较器的实现进行排序;否则,结果不正确。 –
VLK
2010-05-14 17:57:17
啊,你的想法是保持列表总是按照BinarySearch给出的位置插入。 hm,我将检查插入时间对集合大小的依赖性。 – VLK 2010-05-14 18:01:08