1

我有一本字典。最重要的是,该字典将使用它的 Containskey() 方法作为区分大小写的方法,这就是为什么我使用构造函数使其不区分大小写的原因:

 Dictionary<string, string> wishProductNames = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase);
            DBService.GetNameAndPhrases(ref wishProductNames);

我将其发送到 WCF 服务方法以填充并返回。它工作正常,但区分大小写的属性被重置为区分大小写,我无法将其设置回来,因为它仅在创建时设置。

我总是可以使用数组从 WCF 获取数据,然后填充字典,我总是可以将结果字典复制到另一个不区分大小写的字典,但是我如何克服属性重置问题?

4

1 回答 1

4

你不能。与字典关联的比较器不是数据序列化和反序列化的一部分。

但是,您可以通过Dictionary(IDictionary dictionary, IEqualityComparer comparer)构造函数重载轻松地重新创建具有相同项目和适当比较器的字典。

于 2011-11-27T10:57:30.303 回答