eine Enumeration wie folgt gegeben:Wie kann ich Generics verwenden, um einen IEnumerable aus einem Enum zu erstellen?
public enum City {
London = 1,
Liverpool = 20,
Leeds = 25
}
public enum House {
OneFloor = 1,
TwoFloors = 2
}
ich den folgenden Code bin mit einem IEnumerable geben Sie mir:
City[] values = (City[])Enum.GetValues(typeof(City));
var valuesWithNames = from value in values
select new { value = (int)value, name = value.ToString() };
Der Code funktioniert jedoch sehr gut, dass ich dies für eine ganze Menge zu tun haben enums. Gibt es eine Möglichkeit, einen generischen Weg zu schaffen?
Das Problem ist, dass C# "Enum" Einschränkungen für generische Typen nicht erlaubt. Sie können Jon Skeets [unbeschränkte Melodie] (http://code.google.com/p/unconstrained-melody/) verwenden. – Adam
Wenn Sie das 'IEnumerable' nur zur Laufzeit benötigen, können Sie reflection verwenden. Andernfalls können Sie die Verwendung von [templating] (http://msdn.microsoft.com/en-us/library/bb126445.aspx) UND reflection in Betracht ziehen. – Guillaume