Beispiel #1
0
        public static IEnumerable <T> GetSequence(T first, T second, int length, CreateNonStaticCoefSequence seqCreator)
        {
            if (length <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(length));
            }

            if (seqCreator == null)
            {
                throw new ArgumentNullException(nameof(seqCreator));
            }

            return(GetSequenceBasis(first, second, length, seqCreator));
        }
Beispiel #2
0
        private static IEnumerable <T> GetSequenceBasis(T first, T second, int length, CreateNonStaticCoefSequence seqCreator)
        {
            T temp;

            for (int i = 0; i < length; i++)
            {
                yield return(first);

                temp   = second;
                second = seqCreator.Invoke(first, second);
                first  = temp;
            }
        }