首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的间隔容器

C#中的间隔容器
EN

Stack Overflow用户
提问于 2012-03-06 03:13:45
回答 4查看 628关注 0票数 3

C#中有没有区间容器?

我感兴趣的是,它结合了重叠的内部结构,并且我可以找到不在容器中但位于特定间隔中的间隔。

EN

回答 4

Stack Overflow用户

发布于 2012-03-06 03:32:40

一个叫Jani Giannoudis的人在CodeProject上发布了一个.NET time period library,可能符合你的需求。

票数 1
EN

Stack Overflow用户

发布于 2012-03-06 06:37:19

您应该实现如下所示的类:

代码语言:javascript
运行
复制
public class Interval
{
   public long Start {get;set;}
   public long End{get;set;}

   public bool IsIn(Interval interval)
   {
      return Start >= interval.Start && End < interval.End;
   }

   public Interval Intersection(Interval interval)
   {
      if (interval == null)
        return false;

      if (IsIn(interval))
         return interval;
      if (interval.IsIn(this))
         return this;
      if ....
   }

   public Interval Union(Interval interval)
   {....}

   public bool IsIn(List<Interval> intervals)
   {
       return intrvals.Any(x=>IsIn(x));
   }

   public List<Interval> Intersect(List<Interval> intervals)
   {....}

   public List<Interval> Union(List<Interval> intervals)
   {....}
}

编辑:正如@zmbq在评论中提到的,这可以通过结构来完成,结构在这种情况下是更简单的方式,我个人使用类来简单地处理空的间隔(实际上如果开始-结束>= 0,那么间隔是空的,而不是使用预先定义的空间隔,我认为我们可以将它设置为null。但我认为这是语法suger。

票数 1
EN

Stack Overflow用户

发布于 2012-03-06 03:20:09

不是的。您应该能够使用LINQ在简单的配对数组上执行此类检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9572494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档