C#中怎么找出一个数组的固定长度子数组,并使子数组之和最大

C#中如何找出一个数组的固定长度子数组,并使子数组之和最大?
如果有一个double类型的数组为Q[30],怎么样找到其中的一个子数组q[7],并使q[7]中各项之和最大?
------解决思路----------------------
        static int max(double[] values, int count)
        {
            double sum = 0;
            for (int index = count; index != 0; sum += values[--index]) ;
            double maxSum = sum;
            int startIndex = 0;
            for (int index = count; index != values.Length; ++index)
            {
                if ((sum += values[index] - values[index - count]) > maxSum)
                {
                    maxSum = sum;
                    startIndex = index - count;
                }
            }
            return startIndex;
        }