c# - C#中的集合初始化器

在java中,我可以创建一个列表,并立即使用静态初始化器填充它。像这样的:
List <String> list = new ArrayList<String>() {{ Add("a"); Add("b"); Add("c"); }}
这很方便,因为我可以动态创建列表,并将其作为参数传递到函数中。像这样的:
printList(new ArrayList<String>() {{ Add("a"); Add("b"); Add("c"); }});
我对C还不熟悉,我想知道怎么做,但却一无所获。这在C_有可能吗?如果是的话,怎么做呢?

最佳答案

可以使用集合初始值设定项:

new List<string> { "a", "b", "c" }

这将编译为对Add方法的一系列调用。
如果Add方法接受多个参数(例如,字典),则需要将每个调用包装在一对单独的大括号中:
new Dictionary<string, Exception> {
    { "a", new InvalidProgramException() },
    { "b", null },
    { "c", new BadImageFormatException() }
}

本文翻译自 https://stackoverflow.com/questions/7881676/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 c# java static-initializer static-initialization


相关文章:

c# - Http客户端在api调用后传递内容的正确方法

c# - 如何使用WampSharp处理错误和关闭连接

java - DialogFragment.show挂起应用程序

java - 如果在声明之前放置静态初始化程序错误

c# - INSERT语句不会插入使用C#Winform的SQL Server数据库中

c# - 在Razor中将viewmodel属性编码为JavaScript

java - 这是Java中用于db到db之间的数据迁移的最佳api

java - 如何逐行读取标准输入?

java - 如何在Java中将javadoc添加到静态初始化程序?

c++ - 一种在C ++中初始化类的静态数组成员的更好方法(尽管首选const)