字典键中是否有字符限制?

dr.*_*vil 4 .net c# dictionary key key-value

在.NET中我可以使用任何字符串作为字典键吗?这是模板引擎的一部分,我计划允许用户添加自定义标头和值.

标题将类似于"X值"或"分析和XYZ报告摘要",我担心如果他们会在罕见的角色或类似的东西中获得异常.

我假设有大小限制,但期望它大于256个字符.MSDN没有关于这个问题的任何细节.

Meh*_*ari 7

是的,它可以使用任何有效的字符串(限制为几十亿字节)。

顺便说一句,您可能会传递一个自定义IEqualityComparer<T>,您可能会传递给Dictionary可能需要最大限制的构造函数。


Gre*_*ech 7

字典对用作其键和值的类型没有任何特殊知识.无论对象类型如何,它都会简单地调用GetHashCodeEquals方法,以允许它将值放入正确的存储桶中并再次检索它.这意味着任何正确实现这些方法的类都可以用作键.

string类没有正确地实现基于其价值这些方法,所以只要你可以构建String的实例,那么你可以使用它作为重点.