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が適しそうです。
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が適しそうです。
コメントをかく