我经常使用Dictionary类型来存储键和值对,但我一直在使用XML命名空间,并且需要存储相同名称但可能具有不同命名空间的属性。
是否有一种包含两个值而不是一个值的词典?会叫什么?
如果这样的事情不存在,那会是一个很酷的选择吗?
以前解决的问题:
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
// create global variables accessible on server and client
new webpack.DefinePlugin({
新问题是具有命名空间的属性:
var defaultNamespace:String = "http://www.domain.com";
var attributes:Array = ["property1", "property2"];
var dictionary:Dictionary = new Dictionary();
dictionary["property1"] = defaultNamespace;
dictionary["property2"] = defaultNamespace;
我宁愿不创建包含两个值的对象。
答案 0 :(得分:2)
.NET框架具有Hashtable和Dictionary,两者每个键只有1个值。此页面有一个数据结构表供参考:https://msdn.microsoft.com/en-us/library/7y3x785f(v=vs.110).aspx
你可以:
构建您自己的数据结构类。您甚至可以修改.NET实现,因为MS提供了源代码。
将数组或其他列表结构存储为值。
将自定义类型存储为值(您自己的结构或类)
答案 1 :(得分:1)
只需使用该语言的简单容器对象。
在Python中,我使用了元组。在Clojure中,向量是典型的元组替换,因此我使用它们。
真的,如果有一个实现有2个值,它可能只是将它们包装在幕后。当每个键需要3个值时会发生什么?
您可能想要考虑将2个值包装在POD类中。具有2个命名字段的单个值将更容易理解。
答案 2 :(得分:1)
在Java中,您可以使用一对成员对象定义自己的类。 JavaFX已经定义了这样一个类Pair。