0

我正在使用带有 .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

我在这里没有看到什么?

4

1 回答 1

7

你确定你没有使用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);
      }
    }
于 2012-05-25T21:16:47.750 回答