Доходность - это то, что мне трудно понять до сих пор. Но теперь я держусь за это. Теперь, в проекте, если я верну List, анализ кода Microsoft даст предупреждение об этом. Поэтому, как правило, я буду делать все необходимые логические части и вернуть список как IEnumerable. Я хочу знать разницу между ними. Означает ли я, что я возвращаю доход или иначе.
Вот очень простой пример, который я показываю, обычно код немного сложнее.
private static IEnumerable<int> getIntFromList(List<int> inputList)
{
var outputlist = new List<int>();
foreach (var i in inputList)
{
if (i %2 ==0)
{
outputlist.Add(i);
}
}
return outputlist.AsEnumerable();
}
private static IEnumerable<int> getIntFromYeild(List<int> inputList)
{
foreach (var i in inputList)
{
if (i%2 == 0)
{
yield return i;
}
}
}
Одно существенное преимущество, которое я вижу, - это меньше строк. Но есть ли другая польза? Должен ли я изменять и обновлять мои функции, которые возвращают IEnumearble для использования yield вместо List? Каков наилучший способ или лучший способ сделать что-то?
Здесь я могу использовать простые лямбда-выражения над List, но обычно это не так, этот пример специально предназначен для понимания наилучшего подхода к кодированию.