【C#】Foreach文の内部処理とIEnumerable型
foreach文はIEnumerableインターフェースを実装しているオブジェクトにのみ使用できる。
IEnumarableインターフェースを実装するには、GetEnumerator()を定義している必要がある。
GetEnumerator()はMoveNext()とCurrentプロパティ、インデックス番号を持つ列挙用オブジェクトを返す。
MoveNextメソッドはインデックス番号を1つ進める。
Currentプロパティはインデックス番号の要素を参照する。
■参考
最終回 オブジェクトをつなぐためのインターフェイス (3/4)
この記事がわかりやすい
Foreach文の処理
1 2 3 4 5 6 |
IEnumerable<int> list = Enumerable.Range(1, 10); //1~10までのコレクションを生成 foreach (var l in list) { Console.WriteLine(l.ToString()); } |
この処理は内部的には以下の処理と同じ。
1 2 3 4 5 6 7 |
IEnumerable<int> list = Enumerable.Range(1, 10); //1~10までのコレクションを生成 var e = list.GetEnumerator(); //列挙用オブジェクトを取得 while (e.MoveNext()) //インデックスを一つ進める { Console.WriteLine(e.Current); } |
努力が続かないとお悩みの方へ!
Amazonにて発売中!!
試験に受かる、給料を上げる、ビジネスを立ち上げる…。
自分の人生をよりよくしていくには、何よりも努力が欠かせません。
しかし、そうはわかっていてもなかなか続かないもの。。。
「めんどくさい」、「明日からでいいや」、「どうせやっても無駄だし」…
こんな風に私たちは努力を続けられずにいます。
ですが、それはあなたが怠けものだからとか、根性がないからというわけではありません。
どうすれば努力が続くのか、その「テクニック」を知らないだけなのです!
本書では、そんな「どうすれば努力が続くのか」というテクニックや心構えを集めました。
「達成したい夢があるのに、どうしても頑張れない…」
そんなあなたに是非とも読んでほしい1冊となっています。