Feedback

C# - String zu Enum

Veröffentlicht von am 15.11.2008
(2 Bewertungen)
Dieses Snippet/Beispiel zeigt wie ein String in eine Instanz eines Enum gewandelt werden kann.
using System;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			string enumString = "b";
			MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), enumString);
		}
	}

	public enum MyEnum
	{
		a,
		b,
		c
	}
}
Abgelegt unter Enum, String zu Enum.

1 Kommentare zum Snippet

FoidlSpast schrieb am 15.08.2018:
Das ist ja einfach nur hingeklatscht...
Aber da es auch richtige Programmierer gibt, hier eine Enum-Konvertierung als Erweiterungsmethode von string:


public static class EnumExtensions
{
public static T ToEnum<T>(this string value) where T : struct, Enum
{
if (Enum.TryParse(value, out T res))
{
return res;
}
else
{
throw new ArgumentException("Could not parse \"" + value + "\"");
}
}
}

public enum TestEnum
{
Wert1,
Wert2,
Wert3
}



Der Aufruf ist spielend einfach:


enum Enumeration
{
Wert1,
Wert2,
Wert3
}

static void Main(string[] args)
{
string str = "Wert2";

Enumeration en = str.ToEnum<Enumeration>();

Console.WriteLine(en.ToString());
Console.ReadKey();
}


Alternativ kann man den Teil


throw new ArgumentException("Could not parse \"" + value + "\"");


auch mit


return default(T);


ersetzen, um so den Standardwert auszugeben, wenn der Wert nicht als gültiger Enum von "Enum.TryParse" erkannt wird. In diesem Fall wäre das "Wert1".
 

Logge dich ein, um hier zu kommentieren!