2010-05-03 7 views
5

Was ist der beste Weg, um durch eine Enumeration nach einem passenden Wert zu suchen?Loop-through-Enumeration

string match = "A"; 

enum Sample { A, B, C, D } 

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

foreach was? Was genau versuchst du zu testen? – Kobi

+0

Ich suche, ob "A" existiert und den passenden Enumeratorwert zurückgibt – Germ

Antwort

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

Sie würden den Fall behandeln, wo der String Match kein gültiger Enum-Wert ist. Enum.Parse wirft in diesem Fall eine ArgumentException.

+1

Wenn Sie erwarten, dass es manchmal fehlschlägt, verwenden Sie Enum.TryParse() –

+1

@Nelson: 'Enum.TryParse' ist neu zu .Net 4.0. – SLaks

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

Verwenden Enum.Parse

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

@Mark Byers, es ist nur eine Beispielaussage. Gib ihm eine Pause. – AMissico