C#求N个数的最大公约数

public static double GCD(List<double> listOri)
{
    List<double> list = new List<double>(listOri);            

    double c = 1;           
    for (int i = 1; i < list.Count; i++)
    {
        if (list[i - 1] < list[i]) //确定a>b
        {
            list[i - 1] = list[i - 1] + list[i];
            list[i] = list[i - 1] - list[i];
            list[i - 1] = list[i - 1] - list[i];
        }
        for (c = list[i]; c >= 1; c--)
        {
            if (list[i - 1] % c == 0 && list[i] % c == 0)
                break;
        }
        list[i] = c;
    }
    return c;
}