2010-05-03 85 views
5

循环查找匹配值的枚举的最佳方式是什么?循环枚举

string match = "A"; 

enum Sample { A, B, C, D } 

foreach(...) { 
    //should return Sample.A 
} 
+0

的foreach什么?你究竟想要测试什么? – Kobi 2010-05-03 20:54:05

+0

我正在查看是否存在“A”并返回匹配的枚举值 – Germ 2010-05-03 20:56:52

回答

0
public Sample matchStringToSample(string match) 
{ 
    return (Sample)Enum.Parse(typeof(Sample), match); 
} 

你不得不处理,其中字符串匹配是不是有效的枚举值的情况。在这种情况下,Enum.Parse将抛出ArgumentException

+1

如果您希望有时会失败,请使用Enum.TryParse() – 2010-05-03 20:59:41

+1

@Nelson:'Enum.TryParse'是.NET 4.0的新增功能。 – SLaks 2010-05-03 21:03:48

0
Enum.Parse(typeof(Sample), "A"); 
0

使用Enum.Parse

(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A 
+0

@Mark Byers,这只是一个例子。给他休息一下。 – AMissico 2010-05-03 21:03:53