2017-06-02 2 views
0

が、この場合はインタフェースのIEnumerableとIEnumeratorをは、私はこの単純な例であることを学んforeachループでこれを行うので、私は試したことができます。のIEnumerableとIEnumeratorを、あるいは私がコレクションについて学んでいたのforeachのC#

foreach (char c in s) 
      { 
       Console.WriteLine(c+"."); 
      } 

私はforeachループで同じことを行うことができる場合、私は、IEnumerableをとのIEnumeratorインターフェイスを使用する必要がありますなぜ?パフォーマンスは何が良いですか? 大きなテキストの各文字を綴るプログラムをやっていますが、何を使用すればよいですか?インタフェースまたはforeachループ?

私はforeachループについて研究しており、foreachはインターフェイスで動作することがわかりました。

+1

https://stackoverflow.com/questions/1085638/ienumerable-ienumerator-vs-foreach-when-to-use-what –

答えて

1

foreachループでも同じことができるのであれば、なぜIEnumerableとIEnumeratorのインターフェイス を使用する必要がありますか?

配列を除いて、foreachループは、IEnumerableとIEnumeratorを使用して操作を表示/実行します。

しかし、foreachループを使用して要素自体を正確に変更することはできません。これは、Enumerator(JavaのIterator)でのみ可能です。 foreachループを使用して要素を削除することはできません。

パフォーマンスが優れていますか?

コレクションから要素を変更する必要がない限り、ホイールを再開発しないでください。foreachループに固執します。

大文字の各文字を綴るプログラムを実行しています。 何を使用すればよいですか?インタフェースまたはforeachループ?

これは、文字列であるテキストの各文字をスペルする必要があるため、単にforeachループを使用する必要がある場合です。あなたは文字列を変更していません(新しい文字列を作成しない)。

+0

いくつかの要素を変更する必要がある場合は、これらのインターフェイスを使用する必要がありますコレクション。 –

+0

@JoseAviles - はい、そうした場合には、IEnumeratorインターフェースを使うべきです。さもなければ、あなたのユースケースが許す限りforeachループに固執してください。 –

関連する問題