使现有的字典不区分大小写 .Net

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)

因此,除了在收到“通知”对象后重建字典之外,有没有办法将这个字典设置为首先或在创建之后不区分大小写?

谢谢

Ser*_*rvy 5

因此,除了在收到“通知”对象后重建字典之外,有没有办法将这个字典设置为首先或在创建之后不区分大小写?

不,这是不可能的。您需要创建一个新字典。

目前字典拥有各种不同桶中的所有键;更改比较器意味着一堆键会突然出现在错误的存储桶中。您需要遍历每个键并重新计算需要移动的位置,这与创建新字典的工作量基本相同。