Параллелизм или Выигрыши в производительности урожая возвращаются по возврату списка

Если вы говорите об ASP.NET MVC, то у вас должен быть метод контроллера, который возвращает следующее:

return Redirect("http://www.google.com");

В противном случае нам нужна дополнительная информация об ошибке, которую вы получаете в перенаправлении , Я бы сделал шаг, чтобы убедиться, что URL не пуст.

19
задан Scott Dorman 25 November 2008 в 15:20
поделиться

1 ответ

В yield return пример, результат оценен на каждом вызове IEnumerable.MoveNext, тогда как в примере списка, все результаты оценены, перед эти IEnumerable возвращается (обратите внимание, что эти Text свойства не могут быть оценены для каждого результата как кэширование, и встраивание может произойти). Поэтому с yield return необходимо получить маленькое улучшение производительности на первом вызове к перечислителю и затем потенциально маленькому снижению производительности на каждом последующем вызове к IEnumerable.MoveNext, поскольку свойство оценено.

Одна из больших вещей приблизительно yield return - то, что можно возвратить бесконечные последовательности, случайные последовательности и все виды других новых перечислений, которые или были бы чрезвычайно неэффективны или невозможны сделать с моделью создания списка сначала.

Для помещения это просто, возвращая экземпляр List требует, чтобы все элементы в списке были оценены до возврата эти IEnumerable, тогда как использование yield return позволяет каждому элементу быть вычисленным, поскольку это требуется потребителем IEnumerable.

40
ответ дан 30 November 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: