c# - 使用 LINQ 仅返回包含多个 DataTable 的 DataSet 中的两个特定 DataTable

标签 c# linq datatable dataset

如何使用 LINQ 返回包含多个 DataTable 的 DataSet 中的两个特定 DataTable?例如,在下面的代码片段中,是否可以在 foreach 语句中将 LINQ 添加到 myDS.Tables 中?

如果可能的话,我想删除 if 语句。

 DataTable myTable1 = new DataTable("MyTable1");
 DataTable myTable2 = new DataTable("MyTable2");
 DataTable myTable3 = new DataTable("MyTable3");
 DataSet myDS = new DataSet();
 myDS.Tables.Add(myTable1);
 myDS.Tables.Add(myTable2);
 myDS.Tables.Add(myTable3);

 foreach (DataTable table in myDS.Tables)
 {
    if (table.TableName != "MyTable1" && table.TableName != "MyTable2")
    {
        continue;
    }
    Console.WriteLine();
    Console.WriteLine("Table Name = " + table.TableName);
 }

最佳答案

您可以通过使用 IEnumerableCast 函数来使用 linq,然后使用过滤器函数 Where 来获取结果。< br/> 您的 if 语句应该成为Where 函数的谓词。

  var tables = myDS.Tables.Cast<DataTable>()
                          .Where(t=> t.TableName == "MyTable1" || t.TableName == "MyTable2");

关于c# - 使用 LINQ 仅返回包含多个 DataTable 的 DataSet 中的两个特定 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705278/

相关文章:

c# - 如何知道用户账号是否存在

c# - 使用 LINQ 在 C# 中的基于服务的数据库中搜索值是否存在

vb.net - 从 LINQ 查询收集的返回类型

javascript - 如何编辑数据表按钮的位置?

jquery - 使用 DataTables 插件隐藏特定行?

c# - 在 ASP.NET 中使用 JQuery UI 自动完成的有效方法

c# - 使用 TcpClient 通过网络发送和接收数据

c# - 有查询的 Linq DataTable

c# - 确定两个数据表包含相同数据的最快方法?

c# - WPF MVVM - 从 ViewModel 访问 View 中 DataGrid 的 DependencyProperty