Я довольно новый (нормально, REALLY новый) для дженериков, но мне нравится их идея. Я собираюсь быть с несколько раскрывающихся списков на вид, и я хотел бы общий способ взять список объектов и преобразовать его в список SelectListItems
Как написать общий метод расширения IEnumerable <SelectListItem>
Что я сейчас:
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()
});
}
Беда в том, что я должен повторить, что код для каждого раскрывающегося списка, как объекты имеют различные поля, которые представляют Text
свойства SelectListItem
Вот что я хотел бы выполнить:
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 :(
}
Отмените это, нужно было сделать ToSelectListItems :) –
Dan
Как бы это назвать и, в частности, использовать делегат 'selected'? – Dan
Очень приятное решение! – Samuel