如何将字符串限制为一组动态定义的值?

时间:2015-07-20 21:20:00

标签: c#

我有一个具有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

1 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是编写自定义代码,以便在需要时实际执行检查。

就数据结构而言,我建议使用HashSet<string>进行快速查找,您需要填充这些内容:

//Cache this somewhere, until the values change
var allowedValues = new HashSet<string>(stringValues);

if(!allowedValues.Contains(attemptedValue))
{
    //Throw exception?
}