我正在寻找.NET 4.0 的间隔数据类型.例如,间隔(a,b),所有点x使得a <x <= b.
我希望能够做的是创建具有以下特性的间隔:
有了这些,我想做的事情如下:
如果我能同时处理数值数据类型和日期时间会很好.
我知道逻辑非常简单,但我认为没有理由认为我是第一个需要这样做的人.
我有一个数字间隔[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)
任何帮助,将不胜感激.
我正在研究一种扩展方法,它通过特定的选择器找到最小项目.代码下方
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.我相信所有数字数据类型都可以满足于此.
那为什么这是一个无效的操作.