Wil*_*art 3 .net c# generics dictionary case-insensitive
我知道如何使用以下代码使新字典不区分大小写:
var caseInsensitiveDictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
但是我正在使用 WebApi,它将 JSON 对象序列化为我们创建的类。
public class Notification : Common
{
public Notification();
[JsonProperty("substitutionStrings")]
public Dictionary<string, string> SubstitutionStrings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
因此,除了在收到“通知”对象后重建字典之外,有没有办法将这个字典设置为首先或在创建之后不区分大小写?
谢谢
因此,除了在收到“通知”对象后重建字典之外,有没有办法将这个字典设置为首先或在创建之后不区分大小写?
不,这是不可能的。您需要创建一个新字典。
目前字典拥有各种不同桶中的所有键;更改比较器意味着一堆键会突然出现在错误的存储桶中。您需要遍历每个键并重新计算需要移动的位置,这与创建新字典的工作量基本相同。