¿Cómo decirle a una función lambda que capture una copia en lugar de una referencia en C #?

He estado aprendiendo C # y estoy tratando de entender las lambdas. En este ejemplo a continuación, imprime 10 diez veces.

class Program
{
    delegate void Action();
    static void Main(string[] args)
    {
        List<Action> actions = new List<Action>();

        for (int i = 0; i < 10; ++i )
            actions.Add(()=>Console.WriteLine(i));

        foreach (Action a in actions)
            a();
    }
}

Obviamente, la clase generada detrás de la lambda está almacenando una referencia o puntero a laint i&nbsp;variable, y está asignando un nuevo valor a la misma referencia cada vez que el ciclo itera. ¿Hay alguna manera de obligar a lamda a tomar una copia, como la sintaxis C ++ 0x

[&](){ ... } // Capture by reference

vs.

[=](){ ... } // Capture copies