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.
GFU-Schulungen  [Anzeige]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

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!