我需要一种方法,可以基于IEnumerable创建一个扩展方法,使其可以返回SelectListItem列表。
例如:
public class Role
{
public string Name {get;set;}
public string RoleUID {get;set;}
}
IEnumerable<Role> Roles = .../*Get Roles From Database*/
var selectItemList = Roles.ToSelectItemList(p => p.RoleUID,r => r.Name);
这将为我提供一个SelectItemList,其中名称为显示内容,RoleUID为值。 重要提示:我希望这是通用的,因此我可以使用任何对象的两个属性创建它,而不仅仅是Role类型的对象。
我该如何做?
我想象中的代码如下:
public static List<SelectItemList> ToSelectItemList<T,V,K>(this IEnumerable<T>,Func<T,V,K> k)
如果说“或者什么的话”,我显然知道那是不正确的。
TText
和TValue
始终为string
,因为这是SelectListItem
属性的类型。 - Alastair PittsSelectListItem
是一个通用类型,但进一步研究后发现它是一个具体的MVC类型。感谢您指出这一点! - JaredPar