私はデータテーブルのすべての行をループしています:
foreach (DataRow row in dt.Rows) {}
Dtデータテーブル内の現在の行のインデックスを取得したいと思います。例えば:
int index = dt.Rows[current row number]
どうすればいいですか?
int index = dt.Rows.IndexOf(row);
しかし、おそらくforeachの代わりにforループを使用した方が良いでしょう。
作業しているアイテムのインデックスが必要な場合、foreach
ループを使用することは、コレクションを反復処理する間違った方法です。ループする方法を変更して、インデックスを作成します。
for(int i = 0; i < dt.Rows.Count; i++)
{
// your index is in i
var row = dt.Rows[i];
}
これを試してみませんか
for(int i=0; i < dt.Rows.Count; i++)
{
// u can use here the i
}
ここには2つのオプションがあります。
個々の行は単にデータを表しているため、どの行にあるかはわかりません。
DataRowが DataTable の行であることを知っていますか?
現在、すでに各行をループしているもの。現在の行を取得するには、行数を追跡する必要があります。
int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows)
{
index = i;
// do stuff
i++;
}
ArrayList check = new ArrayList();
for (int i = 0; i < oDS.Tables[0].Rows.Count; i++)
{
int iValue = Convert.ToInt32(oDS.Tables[0].Rows[i][3].ToString());
check.Add(iValue);
}
データテーブルの行数を取得するには:dt.Rows.Count
試してください:
int i = Convert.ToInt32(dt.Rows.Count);
私はそれが最短だと思うので、最も簡単な方法です。