添加重复项时仅覆盖的数据类型

时间:2011-11-09 04:47:46

标签: c# optimization union

有这样的数据类型吗?字典抛出异常,列表允许同一事物的多个副本。

或者,如果有一种方法可以降低在列表上进行.Union调用的成本,那么在我的情况下也可以完成同样的事情。

4 个答案:

答案 0 :(得分:1)

如果您致电Dictionary

Add只会抛出异常。只需使用索引器进行分配,即可实现所需的行为。

Dictionary<string, int> dict = new Dictionary<string, int>();

dict["foo"] = 1;
dict["foo"] = 2;

答案 1 :(得分:1)

通过Item property设置值允许重复。

答案 2 :(得分:-1)

一般情况下,覆盖是不好的,除非你愿意这样做!

您可以使用HashSet跳过重复项。

答案 3 :(得分:-2)

我们通过继承System.Collections.ObjectModel.KeyedCollection和阴影(对不起,vb术语)Add方法或根据我们的需要覆盖Insert方法来做到这一点。