Ahoj,
ja si naopak myslim ze IEnumerable muze byt velmi vhodna a primo na to delana:)
Jestli Ti rozumim, tak jen tak blbnes a pocitas PI. Ja mam tuseni, ze PI je nekonecny, takze jestli chces terba nekde na nejakym ui zobrazovat nekonecny text s PI, enumerable je super volba. Naopak jestli chces cokoliv pocitat, nikdy v zivote se Ti nevyplati jakakoliv Tvoje funkce, co vypocita PI, vzdycky musis pocitat s konstantou.
Kazdopadne pro nekonecne PI, by ti mela stacit tato enumerable:
IEnumerable<char> InfinityPI()
{
// tady postupne pocitat PI a vracet neco jako: "3", ",", "1", .........
}
Pak ani nepotrebujes funkcni Calculate, protoze staci iterovat tou InfinityPI kolikrat chces :) bud jednou, nebo donekonecna.
Kazdopadne IEnumerable.ElementAt, je dobry sluha, ale musi se premejslet kdy a zda to pouzit. Funguje tak, ze pro ElementAt(1000) se prochazi dana kolekce objekt po objektu, dokovad se nenajde objekt na pozadovanem indexu - ne vzdy tomu tak je, ale V tom Tvem pripade je to zrovna skutecne smrtici.