我需要一種方法來創建一個IEnumerable的擴展方法,這將允許我返回一個SelectListItem的列表。Lambda擴展方法轉換IEnumerable <T>到列表<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);
這會給我的名字是顯示器,以及RoleUID作爲價值SelectItemList。
重要我希望這是通用的,所以我可以使用任何兩個屬性創建一個對象,而不僅僅是一個類型爲Role的對象。
我該怎麼做?
我想象像下面
public static List<SelectItemList> ToSelectItemList<T,V,K>(this IEnumerable<T>,Func<T,V,K> k)
什麼的,我明明知道是不正確的。
太容易了!哈哈,謝謝... – TheJediCowboy
值得注意的'TText'&'TValue'會因爲這是'SelectListItem'屬性的東西,所以始終是'string'。 –
@AlastairPitts是的,我剛剛注意到並糾正了它。最初我以爲'SelectListItem'是一個泛型類型,但經過進一步的研究發現它是一個具體的MVC類型。感謝您指出! – JaredPar