Ich bin ziemlich neu (ok, REALLy neu) Generika, aber ich liebe die Idee von ihnen. Ich werde auf einem Blick ein paar Dropdown-Listen zu haben und ich würde eine generische Art und Weise wie eine Liste von Objekten zu nehmen und es zu einer Liste von SelectListItems
Wie generische IEnumerable <SelectListItem> Extension-Methode schreiben
zu konvertieren Was ich habe jetzt:
public static IEnumerable<SelectListItem> ToSelectListItems(
this IEnumerable<SpecificObject> items, long selectedId)
{
return
items.OrderBy(item => item.Name)
.Select(item =>
new SelectListItem
{
Selected = (item.Id == selectedId),
Text = item.Name,
Value = item.Id.ToString()
});
}
das Problem ist, würde ich brauche diesen Code für jeden Drop-down zu wiederholen, wie die Objekte verschiedene Bereiche haben, die die Text
Eigenschaft des SelectListItem
hier vertreten ist, was ich erreichen möchte:
public static IEnumerable<SelectListItem> ToSelectListItem<T>(this IEnumerable<T> items, string key, string value, int SelectedId) {
// I really have no idea how to proceed from here :(
}
Abbrechen das, musste ToSelectListItems :) –
Dan
Wie würde ich dies nennen und insbesondere den 'ausgewählten' Delegaten verwenden? – Dan
Sehr schöne Lösung! – Samuel