Wie fügt neues Element in ein IEnumerable
Erstelle ich eine dropdownlist von Enum.
public enum Level
{
Beginner = 1,
Intermediate = 2,
Expert = 3
}
hier ist meine extension.
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
var result = from TEnum e in values
select new { ID = (int)Enum.Parse(typeof(TEnum), e.ToString()), Name = e.ToString() };
var tempValue = new { ID = 0, Name = "-- Select --" };
return new SelectList(result, "Id", "Name", enumObj);
}
das problem, das ich habe, ist, Sie ein anderes Element in IEnumerable. Ich konnte einfach nicht herausfinden, wie es zu tun. Kann jemand bitte ändern Sie meinen code einfügen "--select--" an die Spitze.
InformationsquelleAutor qinking126 | 2011-08-09
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie nicht ändern können eine
IEnumerable<T>
Objekt, es stellt nur eine Schnittstelle zum aufzählen der Elemente. Aber man könnte.ToList()
zu konvertieren, dieIEnumerable<T>
zu einemList<T>
.Ich bin mir nicht sicher, ob dies ist, was Sie wollen:
InformationsquelleAutor Fox32
Können Sie nicht ändern Sie den Typ IEnumerable. Wie der name es vermuten lässt, ermöglicht einen vorwärts-enumeration-traversal.
Dieser sagte es scheint, dass dies ist ein ASP.NET MVC-Anwendung. Der richtige Weg, das zu erreichen, was Sie erreichen wollen (legen Sie einen Standard-Wert) für ein dropdown ist, um die richtige überlastung der DropDownFor Helfer, wie diese:
Dieser geht offenbar davon aus, dass Ihre Erweiterung die Methode ist so einfach wie:
InformationsquelleAutor Darin Dimitrov
Geben diesem einen Versuch
InformationsquelleAutor Brian Dishaw