通过今天的一些随机对象创建,我发现了一个简洁的Dictionary<K, V>
. 以下赋值是编译器快捷方式还是Dictionary<string, string>
.
IDictionary<string, string> items = { { "item1key", "item1value" } };
查看源代码,Dictionary<K, V>
我没有看到任何关于它是如何工作的东西。为此类 dot 实现所有接口不允许我执行类似的操作。为什么我们可以为字典而不是另一种类型。例如,编译器或语言特性如何知道第一项是键,第二项是值。或者更具体的,同样的语法不能用于List<string>
List<string> items = { "item1" };
所以第一个是有效的,为什么?
我不一定要尝试复制这一点,而是很好奇为什么会这样。在这种情况下,是什么让字典特别?
有效的例子
public class Button
{
public string Title { get; set; }
public ButtonType Type { get; set; }
public IDictionary<string, string> Items { get; set; }
public bool RequiresSelected { get; set; }
}
var buttons = new List<Button>
{
new Button {
Items = {
{"button1", "Button 1"},
{"button2", "Button 2"},
{"button3", "Button 3"},
},
Title = "3 Buttons",
Type = ButtonType.DropDown
}
};