循环查找匹配值的枚举的最佳方式是什么?循环枚举
string match = "A";
enum Sample { A, B, C, D }
foreach(...) {
//should return Sample.A
}
循环查找匹配值的枚举的最佳方式是什么?循环枚举
string match = "A";
enum Sample { A, B, C, D }
foreach(...) {
//should return Sample.A
}
您正在寻找Enum.Parse
:
Sample e = (Sample)Enum.Parse(typeof(Sample), match);
你可以通过值循环调用Enum.GetValues
或Enum.GetNames
。
public Sample matchStringToSample(string match)
{
return (Sample)Enum.Parse(typeof(Sample), match);
}
你不得不处理,其中字符串匹配是不是有效的枚举值的情况。在这种情况下,Enum.Parse
将抛出ArgumentException
。
如果您希望有时会失败,请使用Enum.TryParse() – 2010-05-03 20:59:41
@Nelson:'Enum.TryParse'是.NET 4.0的新增功能。 – SLaks 2010-05-03 21:03:48
Enum.Parse(typeof(Sample), "A");
(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A
@Mark Byers,这只是一个例子。给他休息一下。 – AMissico 2010-05-03 21:03:53
的foreach什么?你究竟想要测试什么? – Kobi 2010-05-03 20:54:05
我正在查看是否存在“A”并返回匹配的枚举值 – Germ 2010-05-03 20:56:52