首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Linq从ListControl中填充DataTable

使用Linq从ListControl中填充DataTable
EN

Stack Overflow用户
提问于 2015-01-21 15:17:46
回答 1查看 351关注 0票数 1

我试图使用Linq将DataColumn值推入ListControl中。我的Linq代码如下:

代码语言:javascript
复制
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`2System.Object,System.Web.UI.WebControls.ListItem‘类型的对象强制转换为“System.Web.UI.WebControls.ListItem[]”类型。

有人能告诉我如何纠正Linq吗?

答案

根据Tim的意见,我使用了:

代码语言:javascript
复制
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#造型的人.(!)

代码语言:javascript
复制
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()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 15:20:05

ListItemCollection.AddRange只接受ListItem[],所以请使用:

代码语言:javascript
复制
Dim items = From rom In ds.Tables(0).AsEnumerable() 
            Select New ListItem(dr.Item("Value").ToString(),dr.Item("ID").ToString())
ddl_listControl.Items.AddRange(items.ToArray())

或者一个简单的循环,它不需要这个新数组:

代码语言:javascript
复制
For Each item As ListItem in items 
    ddl_listControl.Items.Add(item)
Next

由于使用了VB.NET,我更喜欢这种查询和方法语法的混合,而不是纯方法语法。然而,以下是:

代码语言:javascript
复制
Dim items As ListItem() = ds.Tables(0).AsEnumerable().
    Select(Function(dr) New ListItem(dr.Item("Value").ToString(),dr.Item("ID").ToString())).
    ToArray() 

这并不是更有效的,即使它是(技术上)一条语句。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28070612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档