C#区间树类

C#区间树类,c#,codeplex,interval-tree,C#,Codeplex,Interval Tree,我正在寻找一个区间树C#集合类 我需要能够添加间隔,理想情况下是2D,否则可能我可以组合两个标准的1D间隔树 我还需要能够找出哪些间隔与给定间隔重叠 我找到了这个但是 没有与此版本关联的下载 编辑: 继续此处:codeplex页面上有一个下载:->右侧->下载我刚刚编写了另一个实现,可以在此处找到: 它还附带了一个异步版本,使用任务并行库(TPL)重建树。您可以找到另一个间隔树的c#实现(基于自平衡avl树)@对于未来的访问者,我也编写了一个实现还可以在上找到另一个实现。与其他实现不同,它的目

我正在寻找一个区间树C#集合类

我需要能够添加间隔,理想情况下是2D,否则可能我可以组合两个标准的1D间隔树

我还需要能够找出哪些间隔与给定间隔重叠

我找到了这个但是

没有与此版本关联的下载

编辑:


继续此处:

codeplex页面上有一个下载:->右侧->下载

我刚刚编写了另一个实现,可以在此处找到:


它还附带了一个异步版本,使用任务并行库(TPL)重建树。

您可以找到另一个间隔树的c#实现(基于自平衡avl树)@

对于未来的访问者,我也编写了一个实现

还可以在上找到另一个实现。与其他实现不同,它的目标是尽可能拥有一个类似于
IDictionary
的接口。它可以按如下方式使用:

var tree = new RangeTree<int, string>()
{
    { 0, 10, "1" },
    { 20, 30, "2" },
    { 15, 17, "3" },
    { 25, 35, "4" },
};

// Alternatively, use the Add method, for example:
// tree.Add(0, 10, "1");

var results1 = tree[5]; // 1 item: [0 - 10] "1"
var-tree=new RangeTree()
{
{ 0, 10, "1" },
{ 20, 30, "2" },
{ 15, 17, "3" },
{ 25, 35, "4" },
};
//或者,使用Add方法,例如:
//添加(0,10,“1”);
var results1=树[5];//1项:[0-10]“1”

如果间隔大致相同且大小上限相对较小,则可以使用简单的2D数组。这就是我几年前在RTS游戏中所做的。我在下载页面中放了一个源代码的下载文件。希望现在会容易些。谢谢。该站点令人困惑。此外,“此版本的应用程序不支持解决方案文件夹”,因此我无法正确打开项目,但似乎有三个.cs文件很重要。将它们复制到我想在中使用的项目中会导致“无法自动检测用于“Interval.cs”的导入器。没有处理此文件类型的导入器。请指定项目中处理此文件类型的导入器。”。除了将所有文件中的所有代码复制并粘贴到我想要使用该类的项目中之外,还有其他想法吗?@ALAN2在这里,我在VS 2010中打开解决方案时没有遇到任何问题。我使用的是Microsoft Visual C#2010 Express。也许我需要问一个关于检测三个cs文件使用哪个导入程序的问题。我最喜欢这个,因为它是自平衡的,可以在不重建的情况下处理更新。您编写此版本的原因是什么?我真的很欣赏这个实现的界面,但是如果这个项目是在Nuget上,它会很有帮助。