web-dev-qa-db-ja.com

データテーブルから行番号を取得する方法は?

私はデータテーブルのすべての行をループしています:

foreach (DataRow row in dt.Rows) {}

Dtデータテーブル内の現在の行のインデックスを取得したいと思います。例えば:

int index = dt.Rows[current row number]

どうすればいいですか?

44
JOE SKEET
int index = dt.Rows.IndexOf(row);

しかし、おそらくforeachの代わりにforループを使用した方が良いでしょう。

86
Jamie Ide

作業しているアイテムのインデックスが必要な場合、foreachループを使用することは、コレクションを反復処理する間違った方法です。ループする方法を変更して、インデックスを作成します。

for(int i = 0; i < dt.Rows.Count; i++)
{
    // your index is in i
    var row = dt.Rows[i];
}
28
Justin Niessner

これを試してみませんか

for(int i=0; i < dt.Rows.Count; i++)
{
  // u can use here the i
}
5
namco

ここには2つのオプションがあります。

  1. 独自のインデックスカウンターを作成してインクリメントできます
  2. Foreachループを使用する代わりに、forループを使用できます

個々の行は単にデータを表しているため、どの行にあるかはわかりません。

4
Mitchel Sellers

DataRowが DataTable の行であることを知っていますか?

現在、すでに各行をループしているもの。現在の行を取得するには、行数を追跡する必要があります。

int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows) 
{
index = i;
// do stuff
i++;
} 
3
Security Hound
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);

}
0
user620755

データテーブルの行数を取得するには:dt.Rows.Count

0
user8346623

試してください:

int i = Convert.ToInt32(dt.Rows.Count);

私はそれが最短だと思うので、最も簡単な方法です。

0
Vakho Akobia