这三种在C#中创建新List<string>的方式有什么不同?
A = new List<string>();
B = new List<string> { };
C = new List<string>() { };发布于 2012-01-02 05:10:17
这三种方法都是等价的,都会创建一个空的List<string>。
集合初始化语法允许您在构造对象时提供数据,
List<string> list = new List<string> { "one", "two", "three" };扩展到
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");由编译器编写。
发布于 2012-01-02 05:10:24
这是没有区别的,因为您在声明列表时没有初始化列表中的任何内容。
如果要在声明时添加一些字符串,则需要使用第二种或第三种选择:
var B = new List<string> { "some", "strings" };
var C = new List<string>() { "some", "strings" };只有在将值传递到List<of T>构造函数时,第三种选择才是必需的:
var C = new List<string>(5) { "some", "strings" };或
var C = new List<string>(5); // empty list but capacity initialized with 5.还有更多的构造函数可用于List<of T>类(例如,将现有的集合或IEnumerable传递到列表构造函数中)。详情请参见MSDN。
发布于 2012-01-02 05:06:51
这些都是一样的。最终结果没有区别,只是语法不同。
https://stackoverflow.com/questions/8695528
复制相似问题