Declarar una variable dentro o fuera de un bucle foreach: ¿cuál es más rápido / mejor?

¿Cuál de estos es el más rápido / mejor?

Éste:

List<User> list = new List<User>();
User u;

foreach (string s in l)
{
    u = new User();
    u.Name = s;
    list.Add(u);
}

O este:

List<User> list = new List<User>();

foreach (string s in l)
{
    User u = new User();
    u.Name = s;
    list.Add(u);
}

Mis habilidades para el desarrollo de principiantes me dicen que el primero es mejor, pero un amigo mío me dice que estoy equivocado, pero no pudo darme una buena razón por la que el segundo es mejor.

¿Hay alguna diferencia en el rendimiento?

Respuestas a la pregunta(9)

Su respuesta a la pregunta