c# - Collection initializing divergence in array and collection such as List

You may have seen the comment that I have put in the code in the post : c# - Sample of Lambda expression on List<T> and Events.. And also, I have keep some post on the discussion of Collection Initializer.

 

There is subtlety in terms of how you write 

 

 

var names = new List<string>{
    "Holy",
    "Jon",
    "Tom"

};
 

and 

 

 

var names = new string [] {
    "Holy",
    "Jon",
    "Tom"
};

 

The former (the List<string> case) will actually calls the List.Add(...) method, while the later, construct some temporary array instance, and assign the reference to the names variable. 

 

so that explain why you can do 

 

 

var form = new Form { AutoSize = true, Controls = { button } };
    

 but not to 

 

 

var form = new Form { AutoSize = true, Controls = new []{ button } };
 

 

你可能感兴趣的:(C#)