Linq DataTable.RowFilter是否使用列表结果?

Linq DataTable.RowFilter是否使用列表结果?,linq,datagridview,ado.net,datatable,Linq,Datagridview,Ado.net,Datatable,我需要保留原始数据表,并根据列表值对其进行过滤。我试图隐藏与列表不匹配的行,但无法立即隐藏。我不想将列表复制到另一个dataTable并将dataGridView绑定到,因为我与原始dataTable有太多的关联。过滤仅适用于少数条件,但列表仅包含所需的值。有LINQ解决方案吗?只有请。我就是这样得到我的名单的。还有另一个dataGridView,它保存我需要筛选的datatable的主键。它的钥匙放在一个组合框里 DataTable MainTable = MainDataSet.Tables

我需要保留原始数据表,并根据列表值对其进行过滤。我试图隐藏与列表不匹配的行,但无法立即隐藏。我不想将列表复制到另一个dataTable并将dataGridView绑定到,因为我与原始dataTable有太多的关联。过滤仅适用于少数条件,但列表仅包含所需的值。有LINQ解决方案吗?只有请。我就是这样得到我的名单的。还有另一个dataGridView,它保存我需要筛选的datatable的主键。它的钥匙放在一个组合框里

DataTable MainTable = MainDataSet.Tables["MyTable"];

DataTable lookupTable = lookupDataSet.Tables["MyLookupTable"];

var List = (from x in lookupTable.AsEnumerable()
            where x.Field<string>("kAutoInc") == comboBox.SelectedValue.ToString()
            select x.Field<int>("Pct")).ToList();

var a = MainTable.AsEnumerable().Where(r =>
                  List .Any(id => id == r.Field<int>("Pct")));
DataTable MainTable=maindaset.Tables[“MyTable”];
DataTable lookupTable=LookUpdateSet.Tables[“MyLookupTable”];
var List=(从lookupTable.AsEnumerable()中的x开始)
其中x.Field(“kAutoInc”)==comboBox.SelectedValue.ToString()
选择x.Field(“Pct”).ToList();
var a=MainTable.AsEnumerable()。其中(r=>
任何(id=>id==r.Field(“Pct”));
这给了我int值30,40,50,60


DataGridView有一个匹配的列“Pct”,我需要它来过滤只包含这些值的行。我知道这似乎很简单,但我就是无法让它工作。

请改用DataView

dataview dv=new dataview(datatable);  
dv.filter=string.format("column1={0}","value1");  
像那样