我有一个使用 Linq 过滤的数据表:
result = myDataTable.AsEnumerable().Where(row => row.Field<string>("id").Contains(values));
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用CopyToDataTable类似的方法
result.CopyToDataTable()
Run Code Online (Sandbox Code Playgroud)
和
result.CopyToDataTable<DataRow>()
Run Code Online (Sandbox Code Playgroud)
但他们没有工作。如何转换result为新的数据表?我搜索了许多 Stack Overflow 问题和许多其他教程,但找不到我想要的。
更新
我已将 HashSet 连接到逗号分隔值,我想我应该使用 String 数组还是 HashSet?
我建议您通过调用 function 创建对象DataTable并在其中导入行ImportRow(),这将解决问题。
示例代码。
DataTable tblClone = datTab.Clone();
foreach (DataRow datRow in datTab.Rows)
{
tblClone.ImportRow(datRow);
}
Run Code Online (Sandbox Code Playgroud)
对你来说就像
var result = myDataTable.AsEnumerable().Where(row => row.Field<string>("id").Contains(values));
DataTable tblClone = myDataTable.Clone();
foreach(DataRow dr in result)
tblClone.ImportRow(dr);
Run Code Online (Sandbox Code Playgroud)