Powiedzmy że mam coś takiego:
class Foo
{
public int Id { get; set;}
public string Boo { get; set;}
}
public IEnumerable<Foo> Do(IEnumerable <Foo> foos)
{
var ids = foos.Select(x => x.Id);
var cache = api.Get(ids);
foreach(var foo in foos)
{
var someData = cache.TryGetValue(foo.Id);
if(someData != null)
{
foo.Boo = someData;
}
else
{ //something else
}
yield return foo;
}
}
foos
jest bardzo ciężkie i zje całą pamięć jak dam .ToList()
R# informuje mnie że: possible multiple enumeration
Api przyjmuje tylko listę id.
Czy można to zrobić jakoś inaczej?