我有一个具有set.seed(144)
x <- sort(runif(1000000))
binsearch(function(y) x[y]-0.5, range=c(1, length(x)))
# $call
# binsearch(fun = function(y) x[y] - 0.5, range = c(1, length(x)))
#
# $numiter
# [1] 21
#
# $flag
# [1] "Between Elements"
#
# $where
# [1] 500577 500578
#
# $value
# [1] -1.990702e-07 5.827751e-07
属性的类,我希望将可能的值限制为动态定义的集合(例如,存储在数据库中,尽管我们使用代码 - 首先是EF6)。显然使用string
。我做了一些关于代码合同的阅读,并且看起来很像,但不知道建立一个可以回退一组值的Enum
的第一件事。可能是Lambda?我在这里理解的最前沿。
以下是一些示例代码:
Contract.Requires
答案 0 :(得分:2)
执行此操作的一种方法是编写自定义代码,以便在需要时实际执行检查。
就数据结构而言,我建议使用HashSet<string>
进行快速查找,您需要填充这些内容:
//Cache this somewhere, until the values change
var allowedValues = new HashSet<string>(stringValues);
if(!allowedValues.Contains(attemptedValue))
{
//Throw exception?
}