Which one of these is the faster/better one?
This one:
List list = new List(); User u; foreach (string s in l) { u = new
Performance-wise both examples are compiled to the same IL, so there's no difference.
The second is better, because it more clearly expresses your intent if u is only used inside the loop.
u