データテーブルの行のインデックスを取得する方法に「IndexOf」メソッドがあります。
サンプルコードを交えて解説したいと思います。
説明
指定したDataRowを検索し、インデックス番号を返す。
ポイント
・取得できるインデックス番号は1つ
・指定したDataRowがない場合は-1を返す
例
コード
using System; using System.Data; namespace Sample { /// <summary> /// メインプログラム /// </summary> public class Program { /// <summary> /// テーブルの行のインデックスを取得 /// </summary> static void Main() { // テーブルの生成 var table = new DataTable(); // テーブルに列を追加 table.Columns.Add("名前", typeof(string)); table.Columns.Add("年齢", typeof(int)); // テーブルに行を追加 table.Rows.Add("一郎", 10); table.Rows.Add("一郎", 20); table.Rows.Add("三郎", 30); table.Rows.Add("四郎", 40); table.Rows.Add("五郎", 50); // テーブルの行を検索 DataRow[] selectedRows = table.Select("年齢 % 20 = '0'"); // テーブルの行のインデックスを取得 foreach(DataRow dataRow in selectedRows) { int index = table.Rows.IndexOf(dataRow); Console.WriteLine("インデックス : " + index); } } } }
出力
インデックス : 1 インデックス : 3