It compiles down to first example i.e. object initialization occurs before assignment
.
You can look at the compiled version using .Net Reflector. It compiled down to this (extracted using reflector) -
List<object> <>g__initLocal0 = new List<object>();
<>g__initLocal0.Add(new object());
List<object> thing = <>g__initLocal0;