public List BaseNumbers = new List { 1, 1, 2, 3, 5, 8 }; public int GetFibnaceNumber(List baseNumbers, int len) { if (len <= 2) { return 1; } else if ((len - 1) <= BaseNumbers.Count) { len = len - 1; return BaseNumbers[len - 1] + BaseNumbers[len - 2]; } else { int BaseMaxIndex = BaseNumbers.Count; BaseNumbers.Add(BaseNumbers[BaseMaxIndex - 1] + BaseNumbers[BaseMaxIndex - 2]); return GetFibnaceNumber(BaseNumbers, len); } } //csharp/5637