如何使用 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);
}
最佳答案
您可以通过使用 IEnumerable
的 Cast
函数来使用 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/