在 Java 中,我喜欢使用这样的结构
List<String> list = new ArrayList<String>() {{add("foo");}};
有没有办法在 C# 中的 1 行中完成此操作?
最佳答案
这称为集合初始化程序,它是 C# 3.0 的一部分。
与列表一样,您可以初始化更复杂类型的集合,只要它们实现 IEnumerable 并为集合初始化程序中的每个元素提供适当的 Add 方法。例如,您可以使用 Add(key, value)
Dictionary<TKey, TValue>
的方法|像这样:
var dict = new Dictionary<string, int>
{
{"first", 10 },
{"second", 20 }
};
更多详细信息可以在深入了解 C# 的第 8 章中找到,该章可以从 Manning's web site 免费下载。 .
关于C# 等效于具有 init block 的 Java 匿名内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/535720/