No se puede usar el parámetro ref o out en las expresiones lambda

¿Por qué no puedes usar un parámetro ref o out en una expresión lambda?

Encontré el error hoy y encontré una solución, pero aún tenía curiosidad de por qué esto es un error en tiempo de compilación.

CS1628: No se puede usar en el parámetro ref o out 'parámetro' dentro de un método anónimo, expresión lambda o expresión de consulta

Aquí hay un ejemplo simple:

private void Foo()
{
    int value;
    Bar(out value);
}

private void Bar(out int value)
{
    value = 3;
    int[] array = { 1, 2, 3, 4, 5 };
    int newValue = array.Where(a => a == value).First();
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta