C# で yield return 機能を使用しようとすると、このエラーが発生します。Visual Studio内の選択でエラーが表示され、よくわかりません。私の考えでは、文字列を ListItem に変換してから、ロットを IEnumerable として返しています。yield return と IEnumerable についての私の理解は的外れである可能性が非常に高いので、助けていただければ幸いです。コメント付きのコードは、適切に機能する古い学校の方法です。
タイプ 'System.Collections.Generic.IEnumerable' を 'System.Web.UI.WebControls.ListItem' に暗黙的に変換することはできません
public partial class CloseIncident : System.Web.UI.Page
{
private ClevelandIncidentRepository repo = new ClevelandIncidentRepository();
protected void Page_Load(object sender, EventArgs e)
{
SetDropDown(InitialType, repo.GetMainTypes());
}
private void SetDropDown(DropDownList dropDown, IEnumerable<string> items)
{
dropDown.Items.Clear();
dropDown.Text = string.Empty;
dropDown.Enabled = items.Count() > 0;
dropDown.Items.AddRange(ToListItem(items).ToArray());
}
private IEnumerable<ListItem> ToListItem(IEnumerable<string> results)
{
yield return from result in results
select new ListItem(result);
//List<ListItem> items = new List<ListItem>();
//items.AddRange(from result in results
// select new ListItem(result));
//return items;
}
}