私はLINQと関連するテーマで遊んでいて、次のことについて疑問に思っていました。
フィボナッチ数列を取得する方法は2つあります。私は始めました:
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;
}
}
}
しかし、それは私に考えさせられました、なぜ私はこれを選ぶのでしょうか:
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も列挙可能です+パラメータ化を追加したい場合があります。数値が急速に大きくなるため、最適化やuse <long>のようなものを実際に探しているわけではありません。これは、単なる簡単な例です。いくつかの引数は、各メソッドの賛否両論です。なぜ、いつどの方法を使用する必要がありますか?