根据已知值列表验证字符串值

时间:2014-12-05 14:40:26

标签: c# validation

我需要构建一个验证函数,调用它,比如'isValid'

已知的有效字符串值如下:

"01"
"06"
"15"
"22"
"40"
"DA"
"F2"

输入是一串未知内容。

包含有效已知值的静态类包含的函数原型是:

 public static bool isValid(string val);

执行此操作的最有效算法是什么?

我可以使用

List<string> ValidKnownValues 

并查看ValidKnownValues.Contains(val)

我可以在val上使用switch语句,在Default case

上返回false

我可以比较字符串值

这个简单的小问题是否有最佳实践方法?

2 个答案:

答案 0 :(得分:2)

您可以使用HashSet<string>而不是List<string>,因为它具有O(1)包含方法,因此可以非常快速地查找有效的已知值。

http://msdn.microsoft.com/en-us/library/bb356440%28v=vs.110%29.aspx

答案 1 :(得分:0)

您还可以将可能值列表连接到字符串中,然后搜索要搜索的值的索引:

bool test =(“01; 06; 15; 22; 40; DA; F2”)。IndexOf(“06”)&gt; -1