Mah, mi pare strano, a me facendo così funziona correttamente:
codice:
using System;
using System.Globalization;

namespace Test
{
    public class Class1
    {
        public static int Main()
        {
            double[] arrayValDouble=new double[10];
            CultureInfo ci = new CultureInfo("it-it");
            string stringa;
            for(int i=0;i<10;i++)
                arrayValDouble[i]=2.7+i;
            stringa=arrayValDouble[4].ToString("G",ci);
            Console.WriteLine(stringa);
            Console.ReadLine();
            return 0;
        }

    }
}
.
---EDIT---
Perché hai messo quelle doppie parentesi nel primo post? Sono un errore di copiatura o le hai messe davvero nel codice?