【发布时间】:2015-07-27 20:08:13
【问题描述】:
我正在尝试存储来自一个对象的多个值的列表,并通过循环遍历将其存储在下拉列表中。
ddlCountries.Items.AddRange((from country in countries
select new List<string> {
country.Name,
country.Slug,
country.Iso
})).ToList();
但是,我使用 select 关键字收到此错误消息:
参数 1:无法从 'System.Collections.Generic.IEnumerable>' 转换为 'System.Web.UI.WebControls.ListItem[]'
最初我测试以确保它可以使用 ListItem 从列表中检索值:
ddlCountries.Items.AddRange((from country in countries
select new ListItem(country.Name, country.Slug))
.ToArray<ListItem>());
这工作得很好,但是我需要检索一个额外的字段 (country.iso)。我已经在论坛中搜索了解决方案,但我很难找到解决此问题的方法。对此的任何帮助将不胜感激。
【问题讨论】:
-
ddlCountries.Items是什么类型?System.Web.UI.WebControls.ListItem[]? -
我认为代码:select new List
{ country.Name,country.Slug, country.Iso} 是错误的,您正在尝试将对象添加到 List -
如果是这样,那么您正在尝试将
IEnumerable<List<string>>添加到 ListItem` 的数组中。 -
@jophyjob 我想你是对的,我猜应该是
select new ListItem { country.Name,country.Slug, country.Iso }。 -
@NikolaiSamteladze 是的,ddlCountries.Items 是 System.Web.UI.WebControls.ListItem[]