我需要保留原始DataTable并根据列表值对其进行过滤。我试图隐藏与列表不匹配的行,但它不会立即生效。我不想将列表复制到另一个dataTable并将我的dataGridView绑定到原因,因为我太多地绑定到原始的DataTable。过滤仅适用于少数条件,但列表仅包含所需的值。是否有LINQ解决方案? C#只请。这就是我的名单。还有另一个dataGridView,它包含我需要过滤的数据表的主键。它的关键是在一个组合框中。
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")));
这给出了int 30,40,50,60 ...
的值DataGridView有一个匹配的列“Pct”,我需要过滤只包含这些值的行。我知道这似乎很容易,但我似乎无法让它发挥作用。
答案 0 :(得分:0)
请改用DataView。
dataview dv=new dataview(datatable);
dv.filter=string.format("column1={0}","value1");
就像那样。