2012-01-12 60 views
1

而不是在方法開始時聲明一個列表,然後添加並返回它 - 我確定有一些可以寫入循環的簡寫回聲語句,例如,用於保存額外的代碼(聲明等)但我忘了它。有人知道我的意思嗎?從方法返回列表 - 簡寫?

回答

5

使用yield

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

現貨,感謝隊友。 – 2012-01-12 09:10:16

+0

請注意,這將返回一個枚舉,而不是一個列表。 – 2012-01-12 09:10:23

+0

@DanielMcNulty很高興能幫到你。 – 2012-01-12 09:10:31

2

我認爲你正在尋找yield return

你可以使用它像這樣在循環中返回的元素:

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

注意通常你可以使用linq或擴展方法來處理列表中的所有元素不得不用循環寫一個函數。就像在列表的所有元素上過濾元素列表satisfy to some conditionperform an operation一樣。

+0

您應該省略MSDN URL的「(VS.80)」部分以獲取最新版本。 – 2012-01-12 09:10:19

+0

感謝隊友,這就是我所追求的。 – 2012-01-12 09:10:28

+0

此外,您還想爲關鍵字使用\'expression \'而不是\'表達式'。 – 2012-01-12 09:12:07