将IList <string>转换为MVC.SelectListItem需要显式转换

Tom*_*kel 5 model-view-controller linq-to-objects list asp.net-mvc-3

我正在调用一个项目(WCF,但这应该没关系)消耗一个IList,与MVC 3(显然这应该无关紧要)我想转换单个列的字符串列表(IList这只是一个列表国家)成一份清单

硬编码列表我这样做了,他们工作正常:

 public List<SelectListItem> mothermarriedatdelivery = new List<SelectListItem>();
 mothermarriedatdelivery.Add(new SelectListItem() { Text = "Yes", Value = "1" });
Run Code Online (Sandbox Code Playgroud)

但是,现在我正在尝试转换此代码:

 public List<SelectListItem> BirthPlace { get; set; }
 BirthPlace = new List<SelectListItem>();
 GetHomeRepository repo = new GetHomeRepository();
 BirthPlace = repo.GetCountries();
Run Code Online (Sandbox Code Playgroud)

我需要隐式地从List转换为SelectListItem,任何人都这样做?是的..我有搜索并找到了几个例子,但没有一个真正符合我的特定需求.

Lau*_*tin 18

你可以这样使用LINQ:

BirthPlace = repo.GetCountries()
                 .Select(x => new SelectListItem { Text = x, Value = x })
                 .ToList();
Run Code Online (Sandbox Code Playgroud)

或者我认为您可以使用SelectList的构造函数之一:

public SelectList BirthPlace { get; set; }

BirthPlace = new SelectList(repo.GetCountries());
Run Code Online (Sandbox Code Playgroud)