Dictionary.ContainsKey StringComparer.Ordinal

aar*_*rro 0 c# dictionary containskey

我正在使用.NET 3.5中的C#中的Dictionary.我创建了一个对象并传入了相等比较器.但是,当我执行以下代码时,我得不到我期望的结果: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
Run Code Online (Sandbox Code Playgroud)

我在这里看不到什么?

age*_*t-j 6

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

使用C#v3.5编译器,此代码为我打印错误:

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);
      }
    }
Run Code Online (Sandbox Code Playgroud)