2012-01-12 16 views
1

メソッドの先頭にリストを宣言して追加し、それを返すのではなく、ループで書くことができる簡略なreturn文があると思います。私はそれを忘れてしまった。誰も私が何を意味するか知っていますか?メソッドからリストを返す - 省略形?

答えて

5

使用yield

public IEnumerable<T> GetElements() 
{  
    foreach(T t in listOfT) 
    { 
     // do some work 
     yield return t; 
     //code will continue here on next iteration  
    } 
} 

は注意してください。

public IEnumerable<int> BuildList() 
{ 
    yield return 1; 
    yield return 2; 
} 
+0

スポットあり、thanks mate。 –

+0

これはリストではなく、列挙可能な値を返します。 –

+0

@DanielMcNulty喜んで助けてくれました。 –

2

私はあなただけのループ内の要素を返すために、そのようにそれを使用することができますが、yield return

を探していると思いますlinqや拡張メソッドを使ってリストのすべての要素を処理できることがよくありますループで関数を書く必要がありません。リストのすべての要素についてsatisfy to some conditionまたはperform an operationという要素のリストをフィルタリングするのと同じです。

+0

最新バージョンを入手するには、MSDN URLの '(VS.80)'部分を省略する必要があります。 –

+0

ありがとうございました。それが私の後です。 –

+0

また、キーワードには '式 'ではなく、'式\'を使用します。ありがとう@ todda.speot.is。 –

関連する問題