您可以使用
List<string> sList = new List<string>() { "1", "2" };
创建一个新列表并添加2个项目。 { "1", "2" }
- 部分仅有效,因为List<T>
已实施Add()
方法。
我的问题:{}
类似于运算符,可以重载,例如添加项目两次
答案 0 :(得分:12)
是{}类似于运算符的东西,可以重载,例如加上 项目两次
任何提供Add
方法,内置或作为扩展方法(starting from C#-6)的集合类型都可以使用{ }
语法提供的集合初始值设定项。如果您的Add
方法将相同的项目两次添加到该集合中,那么它就是这样做的。
如果您希望更改{ }
的行为,则必须覆盖或重载集合上的Add
方法。
一些额外的规范优点(取自this answer):
C#语言规范 - 7.5.10.3集合初始化程序
应用集合初始值设定项的集合对象 必须是实现System.Collections.IEnumerable或a的类型 发生编译时错误。对于每个指定的元素按顺序, collection initializer用目标对象调用Add方法 元素初始值设定项的表达式列表作为参数列表, 为每次调用应用正常的重载决策。就这样 集合对象必须包含适用于每个的Add方法 元素初始化器。