Declarando uma variável dentro ou fora de um loop foreach: qual é mais rápido / melhor?

Qual destes é o mais rápido / melhor?

Este:

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

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

Ou este aqui:

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

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

Minhas habilidades de desenvolvimento de novatos me dizem que a primeira é melhor, mas um amigo meu me diz que estou errado, mas não pode me dar uma boa razão para que a segunda seja melhor.

Existe alguma diferença no desempenho em tudo?

questionAnswers(8)

yourAnswerToTheQuestion