C# 查找布尔型索引的更好结构?
这有点吹毛求疵,我可能忽略了一些简单的事情 有时我有一些整数,必须能够查找它们是真是假。我总是通过使用字典来解决这个问题,插入一个true,然后使用ContainsKey来查看某个内容是否为true(默认情况下为false) 但是,插入一个甚至没有使用过的bool似乎不是一个优雅的解决方案:)您会推荐什么结构?查找性能是主要的,插入是次要的(但很重要)C# 查找布尔型索引的更好结构?,c#,.net,generics,C#,.net,Generics,这有点吹毛求疵,我可能忽略了一些简单的事情 有时我有一些整数,必须能够查找它们是真是假。我总是通过使用字典来解决这个问题,插入一个true,然后使用ContainsKey来查看某个内容是否为true(默认情况下为false) 但是,插入一个甚至没有使用过的bool似乎不是一个优雅的解决方案:)您会推荐什么结构?查找性能是主要的,插入是次要的(但很重要) 一些漂亮的(LINQ)语法用于拥有一堆索引并返回未包含的项,这将是一个额外的好处使用a来保存“true”整数并用于搜索集合。使用这种方法,您只需
一些漂亮的(LINQ)语法用于拥有一堆索引并返回未包含的项,这将是一个额外的好处使用a来保存“true”整数并用于搜索集合。使用这种方法,您只需存储所需的数据,就可以获得与词典当前相同的O(1)性能。使用a保存“true”整数,并使用搜索集合。使用这种方法,您只需存储所需的数据,就可以获得与当前使用字典相同的O(1)性能。您可以使用大量整数 如果为真,则将数组[position]=1;如果为假,则将数组[position]=0 查找是在O(1)中完成的,并且您已经拥有了它。只要需要,就可以声明数组 这不是最经济的解决方案。在.NET2.0中,没有哈希集
或者第二个选项您可以使用一个您可以使用一系列整数 如果为真,则将数组[position]=1;如果为假,则将数组[position]=0 查找是在O(1)中完成的,并且您已经拥有了它。只要需要,就可以声明数组 这不是最经济的解决方案。在.NET2.0中,没有哈希集 或者第二个选项,您可以使用一个假设所有“int”都有一个值,并且假设所有“int”都有一个值,并且没有第三个状态为“未知”