我需要保留原始 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”,我需要过滤仅包含这些值的行。我知道这看起来很容易,但我似乎无法让它发挥作用。