【发布时间】:2015-01-21 15:17:46
【问题描述】:
我正在尝试使用 Linq 将 DataColumn 值推送到 ListControl。我的 Linq 代码如下:
ddl_listControl.Items.AddRange(
From dr As DataRow In ds.Tables(0).Row Select New ListItem(
dr.Item("Value").ToString(),
dr.Item("ID").ToString()
)
)
无法转换类型的对象 'WhereSelectEnumerableIterator`2[System.Object,System.Web.UI.WebControls.ListItem]' 输入“System.Web.UI.WebControls.ListItem[]”。
谁能告诉我如何更正 Linq?
回答
根据蒂姆的意见,我使用了:
ddl_regionSelected.Items.AddRange((From dr As DataRow In ds.Tables(0).Rows Select New ListItem(dr.Item("regionName").ToString(), dr.Item("ID").ToString())).ToArray())
或者对于那些非常喜欢 C# 样式的人......(!)
ddl_regionSelected.Items.AddRange((From dr As DataRow In ds.Tables(0).Rows
Select New ListItem(
dr.Item("regionName").ToString(),
dr.Item("ID").ToString())
).ToArray())
我错过的部分是将整个 Linq 语句包裹在大括号中,然后转换为结果 .ToArray()
【问题讨论】: