C# 取决于表。表名
如果相关表被称为C# 取决于表。表名,c#,for-loop,datatable,dataset,C#,For Loop,Datatable,Dataset,如果相关表被称为table1或table2,我想运行循环。目前,我是这样做的: foreach (DataTable table in DtSet.Tables) { if ((table.TableName == "table1")||(table.TableName == "table2")) { foreach (DataRow sourceRow in table.Rows) { } } } 有没有一种方法可以修改
table1
或table2
,我想运行循环。目前,我是这样做的:
foreach (DataTable table in DtSet.Tables)
{
if ((table.TableName == "table1")||(table.TableName == "table2"))
{
foreach (DataRow sourceRow in table.Rows)
{
}
}
}
有没有一种方法可以修改此代码,以便在不必循环整个数据集的情况下完成名称检查?
非常感谢。使用包含:
if ((table.TableName.Contains("table1"))||(table.TableName.Contains("table2")))
{
foreach (DataRow sourceRow in table.Rows)
{
}
}
你可以写
if ((DtSet.Tables.Contains("table1")
{
foreach (DataRow sourceRow in DtSet.Tables["table1"])
{
}
}
它内部仍将有一个循环。但是会更干净
完全不使用循环是不可能的。您可以使用accept table name作为参数访问TableName
。索引器仍然在内部使用循环
var table1 = dtSet.Tables["table1"];
var table2 = dtSet.Tables["table2"];
if (table1 != null)
{
DoOperation(table1);
}
if (table2 != null)
{
DoOperation(table2);
}
您可以循环两个名称(而不是循环所有表),对于每个名称,请尝试按名称从DtSet.tables
获取一个表。类似于
ProcessTableData(DtSet.Tables["table1"]);
ProcessTableData(DtSet.Tables["table2"]);
void ProcessTableData(DataTable dataTable)
{
if (dataTable == null)
return;
foreach (DataRow sourceRow in dataTable.Rows)
{
}
}
这提醒了我。