Возвращение списка из метода - сокращение? - PullRequest
1 голос
/ 12 января 2012

Вместо того, чтобы объявлять список в начале метода, добавлять к нему и затем возвращать его - я уверен, что есть несколько сокращенных операторов возврата, которые можно записать в цикле, например, чтобы сохранить дополнительный код (объявление и т.д.) но я забыл это. Кто-нибудь знает, что я имею в виду?

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Использование yield:

public IEnumerable<int> BuildList()
{
    yield return 1;
    yield return 2;
}
2 голосов
/ 12 января 2012

Я думаю, что вы ищете 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 или методы расширения, чтобы некоторые работали над всеми элементами списка без необходимости писать функцию с циклом. Подобно фильтрации списка для элементов, которые удовлетворяют некоторому условию или , выполняют операцию для всех элементов списка.

...