如何将变量限制为固定的字符串集?

Foo*_*Foo 5 c#

如果我想将数据库中spicelevel列的值限制为1、2和3,则可以执行以下操作

    private enum SpiceLevel
    {
        Low=1,
        Medium=2,
        Hot=3
    }
Run Code Online (Sandbox Code Playgroud)

然后在代码中,我可以(int)SpiceLevel.Low选择1作为香料级别。

现在,如果我需要在数据库中只接受“ Red Rose”,“ White Rose”和“ Black Rose”作为列的值,该怎么办?有什么合适的方法来解决这个问题?

我正在考虑将它们存储在配置文件或常量中,但是它们都不像枚举那样优雅。有任何想法吗?

更新:

答案在这里为我工作

I4V*_*I4V 7

您可以property为此使用

public string[] AllowedRoses = new string[] {  "Red Rose", "White Rose" ,"Black Rose" };
string _Rose = "Red Rose";
public string Rose
{
    get
    {
        return _Rose;
    }
    set
    {
        if (!AllowedRoses.Any(x => x == value)) 
               throw new ArgumentException("Not valid rose");
        _Rose = value;
    }
}
Run Code Online (Sandbox Code Playgroud)