VisualStudio C#とMySQL or SQLiteで競馬ソフトを作ってみる。そのメモ。

https://plaza.rakuten.co.jp/pirorin55/diary/201602...

for文と、foreach文、どちらを使うべきなんでしょう。

どちらも特徴があるので、どちらがいいという話ではなく適材適所が回答だと思います。

データテーブルの例
dtに予めdatatableがセットされているものとする

○foreachを使う場合
foreach (DataRow dr in dt.Rows)
{
}

インデックスを利用しない場合はこちらの方がコード量が少なくなります。
また、予めインデックス数を考えなくて良いため、IndexOutOfRangeException
が発生しません。コレクション全ての要素を使った処理が終われば、勝手終わります。

○forを使う場合
for (int i = 0; i < dt.Rows.Count; i++)
{
}

何件目のレコードを処理しているかが明確になります。レコード件数が多く
メモリの関係で1,000件ごとに処理を中断するなど、件数を意識したコードを
描きたい場合は、こちらの書き方になります。件数を意識する必要がなく、
全てのレコードに処理をするという事であれば、foreach の方が適しています。

○まとめ
全ての要素にアクセスする場合 foreach を利用する
指定した回数繰り返す場合 for を利用する

で、区別すると、datatableへのアクセスは全件処理が基本になると思うので
多くの場合foreachが適しそうです。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます