2012-01-12 2 views
1

메소드의 시작 부분에리스트를 선언하고 추가 한 다음 리턴하는 것이 아니라 - 예를 들어 추가 코드 (예 : 선언 등)를 저장하기 위해 루프로 작성 될 수있는 축약 형 리턴 명령문이 있습니다. .) 그러나 나는 그것을 잊었다. 내가 무슨 뜻인지 아는 사람?메서드에서 목록 반환 - 속기?

답변

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

Spot on, 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. –