相关疑难解决方法(0)

C#.NET的区间数据类型?

我正在寻找.NET 4.0 的间隔数据类型.例如,间隔(a,b),所有点x使得a <x <= b.

我希望能够做的是创建具有以下特性的间隔:

  • 封闭和开放的
  • 无限的间隔,完全无界,右/左无界.

有了这些,我想做的事情如下:

  • 检查点是否在某个区间内.
  • 检查两个间隔是否重叠.
  • 将两个重叠间隔合并为一个间隔.
  • 检查间隔集合是否包含单个间隔.
  • 等等:)

如果我能同时处理数值数据类型和日期时间会很好.

我知道逻辑非常简单,但我认为没有理由认为我是第一个需要这样做的人.

.net c# types

23
推荐指数
5
解决办法
2万
查看次数

如何获得数字范围

我有一个数字间隔[1,20].

如果我决定禁止范围[15,18],我想要一种能够返回数量范围的方法.我的方法应该给我一个包含[1,15]和[18,20]的列表

Range对象可能看起来像那样

public class Range
{
     int Start {get;set;}
     int End {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

c#

9
推荐指数
3
解决办法
3万
查看次数

比较实现IComparable的项目的问题

我正在研究一种扩展方法,它通过特定的选择器找到最小项目.代码下方

    public static T MinBy<T, K>(this IEnumerable<T> src, Func<T, K> selector) where K : struct, IComparable, IConvertible
    {
        var min = default(K);
        T minItem = default(T);
        foreach (var item in src)
        {
            var current = selector(item);
            if (current < min)
            {
                min = current;
                minItem = item;
            }
        }

        return minItem;

    }
Run Code Online (Sandbox Code Playgroud)

它给出了错误Error Operator '<' cannot be applied to operands of type 'K' and 'K'.但我已经指定了通用约束K应该是Struct and IComparable.我相信所有数字数据类型都可以满足于此.

那为什么这是一个无效的操作.

c# generics icomparable

5
推荐指数
2
解决办法
2768
查看次数

标签 统计

c# ×3

.net ×1

generics ×1

icomparable ×1

types ×1