Tag:

在.NET C#中设置操作

我正在研究与roughset相关的东西。 该项目使用了很多集合操作和操作。 我一直在使用字符串操作作为设置操作的停止间隔测量。 它一直工作正常,直到我们需要通过算法处理一些不合理数量的数据(500,000条记录,每条记录大约40多列)。 我知道.net 2.0中没有设置数据结构(2.0是我启动项目时的最新版本)我想知道是否有任何库在.net c#中提供快速设置操作,或者3.5是否添加了本机设置数据结构体。 谢谢 。

List.Add vs HashSet.Add for c#中的小集合

特定 HashSet set; List list; T t; 哪些对SMALL集合表现更好? if (! list.Contains (t)) list.Add (t); 要么 set.Add (t); 怀疑来源: HashSet vs. List性能

使用C#HashSet解决相等不相等的问题

我基于我最近发现的关于Dictionary性能特征,因此我使用Dictionary ,其中bool被忽略但据说我可以使用HashSet 。 例如: Dictionary overlap; class bounds { public float top_left_x, top_left_y, width, height; public bool equal(bounds other) { return upper_left_x + width > other.upper_left_x && upper_left_x other.upper_left_y && upper_left_y < other.upper_left_y + other.height; } public … GetHashCode() { …; } } 在这里,我没有使用等于检查相等,而是重叠,这在其他地方肯定会令人讨厌,但我有理由这样做。 我假设如果可以在O(1)时间内从一个键中查找一个值,那么键也可以从其自身中查找。 所以我可能会将数千个边界重叠并执行此操作: overlap.ContainsKey(new bounds(…)); 如果给定的绑定与集合中的任何其他绑定重叠,则在O(1)时间内找出。 我还想知道如果我改变一个边界的(x,y)位置会发生什么,大概就像删除然后再次将它添加到集合中,性能明智,非常昂贵? 我将什么放入GetHashCode函数? 目标 如果这有效,那么我在使用这种机制后找出给定边界重叠的其他边界。 在这个系统中很少有边界移动,并且在填充集合后没有添加新的边界。 新添加的边界需要能够重叠旧的边界。 […]

如何使用项目的哈希检查HashSet是否包含项目?

我想检查HashSet是否包含特定元素。 我已经有了元素的int哈希码,但没有对元素本身的引用。 是否可以在不迭代整个集合的情况下执行此操作?

c#集合inheritance

c#中是否有一个集合支持inheritance,就像对象可以看到包含来自另一个元素以及它们自身的所有元素一样? 例如: HashSet animals = new HashSet(); HashSet dogs = new HashSet(); animals.also_appears_to_include(dogs); 因此,如果我为狗添加2个元素,向动物添加1个元素,那么看看动物有多少元素我会看到3。 或者我可以在每个元素中引用上面提到的3个元素,给动物3个元素和狗2.我仍然有两个独立的,重叠的列表是可取的,但是在这个简单的例子中添加和删除元素可能会变得棘手在添加和删除狗的情况下必须添加或删除两个集合。 或者我可以使用此function实现我自己的集合。

仅通过构造函数设置类的属性

我试图使类的属性只能通过同一个类的构造函数设置。

如何查找集合的所有分区

我有一套不同的价值观。 我正在寻找一种方法来生成该集合的所有分区,即将集合划分为子集的所有可能方式。 例如,集合{1, 2, 3}具有以下分区: { {1}, {2}, {3} }, { {1, 2}, {3} }, { {1, 3}, {2} }, { {1}, {2, 3} }, { {1, 2, 3} }. 由于这些是数学意义上的集合,因此顺序无关紧要。 例如, {1, 2}, {3}与{3}, {2, 1} ,不应该是单独的结果。 可以在Wikipedia上找到集合分区的完整定义。