Что предпочтительнее в этом случае:Доходность в foreach или GetEnumerator()?
IEnumerator<Cat> EnumerateCats()
{
var rawCats = GetRawCats();
foreach(var cat in rawCats)
{
var typedCat = new Cat
{
Name = cat.Key;
Breed = cat.Value;
};
yield return typedCat;
}
}
или
IEnumerator<Cat> EnumerateCats()
{
return GetRawCats()
.Select(cat => new Cat
{
Name = cat.Key;
Breed = cat.Value;
})
.GetEnumerator();
}
Я предпочитаю последний пример кода. Он работает так же, как и первый?
Это легальный код. Мне нужно переопределить существующий метод: virtual IEnumerator EnumerateCats(). –
Hopeless
Если это ваше ограничение, просто выберите подходящий вам подход (я также предпочитаю второй). Я действительно сомневаюсь, что есть разница между обоими подходами, о которых стоит подумать. – sstan