首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Linq to dataTable过滤datatable?

如何使用Linq to dataTable过滤datatable?
EN

Stack Overflow用户
提问于 2013-10-18 20:15:46
回答 3查看 88.9K关注 0票数 20

您好,如何使用linq to datatable过滤datatable?我有一个DropDownList,在那里我可以选择模块列的值。现在我想用这个模块列来过滤DataTable。

下面是我的datatable结构:

代码语言:javascript
复制
User | Host | TimeDiff | License | Telefon | Modul 

代码如下:

代码语言:javascript
复制
protected void drp_Modules_SelectedIndexChanged(object sender, EventArgs e)
{
    string value = drp_Modules.SelectedValue;

    DataTable tb = (DataTable)Session["dt_Users"];

    tb = from item in tb //?????

    LoadUsertable(tb);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-18 20:31:12

您最好使用DataTable.Select方法,但是如果您必须使用LINQ,那么您可以尝试:

代码语言:javascript
复制
DataTable selectedTable = tb.AsEnumerable()
                            .Where(r => r.Field<string>("Modul") == value)
                            .CopyToDataTable();

这将基于筛选的值创建一个新的DataTable

如果您使用DataTable.Select

代码语言:javascript
复制
string expression = "Modul =" + value;
DataRow[] selectedRows = tb.Select(expression);
票数 46
EN

Stack Overflow用户

发布于 2017-06-14 16:16:47

在强制转换之前,您可以使用condition来检查行是否存在。Any()需要System.Linq命名空间才能工作

代码语言:javascript
复制
var rows = values.AsEnumerable().Where
            (row => row.Field<string>("Status") == action);//get the rows where the status is equal to action

if(rows.Any())
{
    DataTable dt = rows.CopyToDataTable<DataRow>();//Copying the rows into the DataTable as DataRow
}
票数 2
EN

Stack Overflow用户

发布于 2020-01-23 20:28:54

根据过滤条目的列表来检索datatable。(即,如果数据表中存在任何列表项,则将接收匹配的结果。

代码语言:javascript
复制
 List<string>item=new List<string>(){"TG1","TG2"};     
 DataTable tbsplit = (from a in tbl.AsEnumerable()
              where item.Any(x => a.Field<string>("CSubset").ToUpper().Contains(x.ToUpper()))
              select a).CopyToDataTable();//By Executing this, the Filter DataTable is obtained
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19449449

复制
相关文章

相似问题

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