【发布时间】:2019-06-26 17:19:20
【问题描述】:
是否有任何 VB.NET 等效于 C#6 Indexer Initializer 构造?
var placesByZip = new Dictionary<string, string>
{
["63368"] = "Dardenne Prairie",
["63141"] = "Des Peres",
["63101"] = "St. Louis"
};
--编辑--
更准确地说,我正在寻找索引器初始化器(它是一个对象初始化器),而不是集合初始化器。
更多关于差异的信息可以在blog entry的末尾找到。
-- 编辑2:
从提到的博客中,解决方案应该允许这样做:
再次重申,Indexer Initializer 不是类型 Collection Initializer 的一种,是 Object Initializer 的一种。为什么 我一直在说这个?为什么这种区别很重要?因为你 不能将对象初始化器和集合初始化器混合在一起 初始化列表。
所以,我们不能初始化一个集合并在同一个集合中设置一个属性 初始化列表,但我们可以在其中设置属性、字段和索引器 相同的初始化列表,因为它们都是有效的对象 初始化器。
【问题讨论】:
-
Dim placesByZip As New Dictionary(Of String, String) From {{"63368", "Dardenne Prairie"}, {"63141", "Des Peres"}} -
@soohoonigan:这就是答案——你应该把它作为答案发布。
-
来自你的链接:
Now, in Dictionary the net result is the same, but keep in mind this isn’t necessarily true for all classes.所以也许使用字典以外的东西 -
我能知道为什么我在这个问题上被否决了吗?我认为这个问题很准确,但答案只是错过了获取索引器初始化程序的重要事项。相反,答案旨在如何初始化字典......
标签: c# vb.net c#-6.0 initializer