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

标签 c# java static-initializer static-initialization

在 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() }
}

关于c# - C# 中的集合初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881676/

相关文章:

java - 程序应该显示整个图像只显示它的一部分

java - 一个线程可以在另一个线程完成静态初始化(类加载)之前进入静态方法吗?

ios - 重写 NSMutableUrlRequest 静态初始化程序?

c# - 在 C# Windows 窗体中访问其他类

c# - 函数内的 if 语句

java键输入不起作用

java - String.getBytes() 多次执行返回不同的值?

c# - 性能: Lots of queries or lots of processing?

c# - Linq EF Include() with Select() new type lost included