Ich spiele herum mit LINQ und verwandte Themen und wunderte sich über die folgenden.
Ich habe 2 Methoden, um eine Fibonacci-Folge zu erhalten. Ich begann mit:
public static IEnumerable<int> Fibonacci
{
get
{
int i = 0;
int j = 1;
int temp = 0;
while (true)
{
yield return i;
temp = i;
i = j;
j = temp + i;
}
}
}
Aber es hat mich zum Nachdenken gebracht, warum ich das hier vorziehen würde:
public static IList<int> Fibonacci(long to)
{
IList<int> fibList = new List<int>();
int i = 0;
int j = 1;
int temp, index = 0;
while (index < to)
{
fibList.Add(i);
temp = i;
i = j;
j = temp + i;
index++;
}
return fibList;
}
IList ist ein Enumerable sowie + Ich könnte einige Parametrisierung zu ihm hinzufügen möchten. Ich bin nicht wirklich auf der Suche nach Optimierungen oder Sachen wie < long > verwenden, weil die Zahl schnell groß wird, es ist nur ein schnelles Beispiel. Nur einige Argumente für und gegen jede Methode. Warum und wann sollte ich welche Methode verwenden?