2008-09-28 24 views
1

我需要在.NET中存储(整数,布尔值)的键值对列表。我使用字典时重新排序它们。有没有一个内置的集合可以处理这个问题。如何在无序集合中存储整数和布尔键值对?

+0

更重要的是,在常量时间内通过键访问值,还是能够遍历插入顺序中的项目? – Rob 2008-09-28 21:17:42

回答

8
List<KeyValuePair<int, bool>> l = 
         new List<KeyValuePair<int, bool>>(); 
    l.Add(new KeyValuePair<int, bool>(1, false)); 
0

你可以只创建KeyValuePairs列表:

var myList = new List<KeyValuePair<int, bool>>(); 
-2

字典应该重新排序,在地图本身有没有顺序的概念。

有在.net中的一类,它支持了这种说法:

SortedDictionary<Tkey, Tvalue> 

它要求TKEY类型实现德IComparable接口,因此知道如何排序。这样,当你返回键或值时,它们应该按照IComparable实现指定的顺序。对于整数当然是微不足道的:

a < b 
0

OrderedDictionary是要走的路。它提供了O(1)retreival和O(n)插入。欲了解更详细的信息see codeproject

0

数组呢?

KeyValuePair<int, bool>[] pairs 

当您想要在集合初始化后添加对时,列表可能会更有用。

List<KeyValuePair<int, bool>> 
相关问题