Können Sie mir helfen, diesen Code zu kodieren
? %Vor%wenn bulid der Fehler ist: Der Typ 'System.Array' kann nicht implizit in 'System.Collections.Generic.IEnumerable' konvertiert werden. Eine explizite Konvertierung existiert (fehlt Ihnen ein Cast?) Bei return Enum.GetValues (enumType)
Das Problem liegt in Ihrer GetEnumValues
-Methode, Enum.GetValues gibt ein Array
nicht ein IEnumerable<T>
zurück. Sie müssen es umsetzen, d. H.
Ich nehme an, dass diese Zeile der Fehler ist?:
%Vor%Laut der Fehlermeldung vermissen Sie eine Besetzung. Haben Sie versucht, eine Besetzung hinzuzufügen?:
%Vor% Die Methode .GetValues()
für Enum
gibt an Array
. Und obwohl es etwas ist, über das Sie aufzählen können (es implementiert IEnumerable
), handelt es sich nicht um eine generische Enumeration (es implementiert nicht IEnumerable<T>
zur Kompilierzeit, obwohl Die Dokumentation gibt an, dass sie zur Laufzeit verfügbar sein wird.).
Um ein IEnumerable
als IEnumerable<T>
zurückzugeben, musst du es umwandeln. Da Sammlungen nicht immer direkt kovariant sind, gibt es eine praktische .Cast<T>()
-Methode, um die Sammlung zu transformieren.