Dictionary.ContainsKey StringComparer.Ordinal

本文关键字:Ordinal StringComparer ContainsKey Dictionary | 更新日期: 2023-09-27 18:35:19

我正在使用 .NET 3.5 的 C# 字典。 我创建了一个Dictionary<string, int>对象,并传入了StringComparer.Ordinal相等比较器。 但是,当我执行以下代码时,我没有得到我所期望的:

Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal);
theDictionary.Add("First", 1);
bool exists = theDictionary.ContainsKey("FIRST");    // equals true, when it should not

我在这里没有看到什么?

Dictionary.ContainsKey StringComparer.Ordinal

你确定你没有使用StringComparer.OrdinalIgnoreCase吗?

这段代码使用 C# v3.5 编译器为我打印 false:

using System;
using System.Collections.Generic;
    static class Program
    {
      static void Main()
      {
        Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal);
        theDictionary.Add("First", 1);
        bool exists = theDictionary.ContainsKey("FIRST");
        Console.WriteLine(exists);
      }
    }