在.NET中,我可以使用任何字符串作为字典键吗?这是模板引擎的一部分,我计划允许用户添加自定义标题和值。
标题将类似于“X的值”或“分析&XYZ报告的摘要”,我担心如果它们包含罕见字符或类似的内容会导致异常。
我假设有大小限制,但期望它比256个字符更大。MSDN没有提供有关此主题的详细信息。
标题将类似于“X的值”或“分析&XYZ报告的摘要”,我担心如果它们包含罕见字符或类似的内容会导致异常。
我假设有大小限制,但期望它比256个字符更大。MSDN没有提供有关此主题的详细信息。
字典对于用作键和值的类型没有任何特殊知识。无论对象类型如何,它都将简单地调用GetHashCode
和Equals
方法,以使其将值放入正确的桶中并再次检索出来。这意味着,只要正确实现了这些方法的任何类都可以用作键。
string
类根据其值正确实现了这些方法,因此只要您能构造字符串的实例,就可以将其用作键。
是的,它可以使用任何有效的字符串(长度限制为数十亿字节)。
顺便说一下,您可以传递自定义的 IEqualityComparer<T>
到 Dictionary
构造函数中,这可能需要一个最大限制。