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

原文 标签 c# java static-initializer static-initialization

在Java中,我可以创建一个List并立即使用静态初始化程序填充它。像这样:
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() }
}

相关文章:

c++ - C ++ 0x静态初始化和线程安全

c# - 何时需要担心SQL注入保护

c# - 如何从Microsoft.AspNetCore.All Meta包中删除额外的引用

php - 我应该如何弥补PHP中缺少静态初始化器?

java - 透明的JFrame背景,但可见的内容

java - 如何修改设置方法以更新结果?

c# - 更改Windows Media Player的目标扬声器

c# - 重命名高阶列表操作的基本原理

java - Google云端硬盘API发送推送通知时的HTTP 302