看起来 SortedList 被排除了。在现有的集合中,你认为哪种最适合保持相同的快速访问和更改?
Silverlight 的 Dictionary 是否可以永久排序?
此致 敬礼 VLK
看起来 SortedList 被排除了。在现有的集合中,你认为哪种最适合保持相同的快速访问和更改?
Silverlight 的 Dictionary 是否可以永久排序?
此致 敬礼 VLK
回答你的问题:不行。字典不能保证按键排序。
然而,List<T>
支持 BinarySearch
方法。这可以帮助你实现类似于 SortedList
的目标。
文档中有一个很好的例子,说明了基本的实现方法。请参见:
你可以看一下 Wintellect 的 Power Collections。这个库在 EPL 下是免费的。我认为 OrderedMultiDictionary 可以解决你的问题。你应该能够在 Silverlight 下编译它。虽然我已经有几年没有使用过这个库了,但我曾经在一个 WPF 项目中使用过这个库(和 Richter 的线程库)。
编辑:
在尝试使用后,看起来你需要做一些工作才能让 Power Collections 在 Silverlight 中正常工作。
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();
效果与使用排序列表相同。