0

loop関連するテーブルがtable1orと呼ばれる場合にa を実行したいtable2。現在、私は次のようにしています:

foreach (DataTable table in DtSet.Tables)
{
    if ((table.TableName == "table1")||(table.TableName == "table2"))
    {
        foreach (DataRow sourceRow in table.Rows)
        {
        }
    }
}

データセット全体をループせずに名前チェックが行われるように、このコードを変更する方法はありますか? どうもありがとう。

4

5 に答える 5

1

(すべてのテーブルをループするのではなく) 2 つの名前をループし、名前ごとにテーブルを名前で取得してみてくださいDtSet.Tables

于 2013-01-13T13:11:52.387 に答える
1

テーブル名をパラメーターとして受け入れるインデクサーTableNameを使用してアクセスできます。インデクサーは依然として内部的にループを使用します。

var table1 = dtSet.Tables["table1"];
var table2 = dtSet.Tables["table2"];

if (table1 != null)
{
    DoOperation(table1);
}

if (table2 != null)
{
    DoOperation(table2);
}
于 2013-01-13T13:09:11.263 に答える
0

のようなものはどうですか....

ProcessTableData(DtSet.Tables["table1"]);
ProcessTableData(DtSet.Tables["table2"]);    


void ProcessTableData(DataTable dataTable)
{
    if (dataTable == null)
        return;

    foreach (DataRow sourceRow in dataTable.Rows)
    {
    }
}
于 2013-01-13T13:20:57.867 に答える
0

使用内容:

  if ((table.TableName.Contains("table1"))||(table.TableName.Contains("table2"))) 
{
    foreach (DataRow sourceRow in table.Rows) 
    {
    }
}
于 2013-01-13T13:08:15.630 に答える
0

あなたは書ける

if ((DtSet.Tables.Contains("table1")
{
    foreach (DataRow sourceRow in DtSet.Tables["table1"])
    {
    }
}

内部にはまだループがあります。しかし、よりきれいになります。

ループなしでそれを行うことはまったく不可能です。

于 2013-01-13T13:08:51.760 に答える