从方法返回列表 - 速记?

时间:2012-01-12 09:08:03

标签: c# list return

不是在方法的开头声明一个列表,而是添加它然后返回它 - 我确定有一些可以在循环中写入的简写返回语句,例如,保存额外的代码(声明等),但我已经忘记了。有人知道我的意思吗?

2 个答案:

答案 0 :(得分:5)

使用 yield

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

答案 1 :(得分: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元素的列表一样。