namespace GenericSample
{
public class DropdownListItem
{
public string Description { get; set; }
public int Value { get; set; }
}
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
}
public class Role
{
public int RoleID { get; set; }
public string RoleName { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<User> users = new List<User>();
users.Add(new User() { UserID = 1, UserName = "Hemant" });
users.Add(new User() { UserID = 2, UserName = "Vijay" });
List<Role> roles = new List<Role>();
roles.Add(new Role() { RoleID = 1, RoleName = "Admin" });
roles.Add(new Role() { RoleID = 2, RoleName = "Manager" });
List<DropdownListItem> ddlUsers =
users.ToSelectList<User>(u => u.UserName, u => u.UserID).ToList();
Console.WriteLine("User Details:-");
foreach (DropdownListItem ddl in ddlUsers)
{
Console.WriteLine("UserID: {0}, UserName
: {1}", ddl.Value, ddl.Description);
}
List<DropdownListItem> ddlRoles = roles.ToSelectList<Role>(u => u.RoleName, u
=> u.RoleID).ToList();
Console.WriteLine("Role Details:-");
foreach (DropdownListItem ddl in ddlRoles)
{
Console.WriteLine("RoleID: {0}, RoleName
: {1}", ddl.Value, ddl.Description);
}
Console.ReadLine();
}
}
static class GenticClass
{
// Generic extension method to convert a type into
DropDownItem
public static List<DropdownListItem> ToSelectList<T>(this List<T> glist, Func<T, string> text, Func<T, int> value)
{
List<DropdownListItem> ddlList = new List<DropdownListItem>();
glist.ForEach(x =>
{
ddlList.Add(new DropdownListItem() { Value = value(x),
Description = text(x) });
});
return ddlList;
}
}
}
No comments:
Post a Comment