Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dictionary.ContainsKey StringComparer.Ordinal_C#_Dictionary_Containskey - Fatal编程技术网

C# Dictionary.ContainsKey StringComparer.Ordinal

C# Dictionary.ContainsKey StringComparer.Ordinal,c#,dictionary,containskey,C#,Dictionary,Containskey,我正在使用C#和.NET3.5的词典。我创建了一个字典对象,并传入了StringComparer.Ordinal相等比较器。但是,当我执行以下代码时,我并没有得到预期的结果: Dictionary<string, int> theDictionary = new Dictionary<string, int>(StringComparer.Ordinal); theDictionary.Add("First", 1); bool exists = theDictionar

我正在使用C#和.NET3.5的词典。我创建了一个
字典
对象,并传入了
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 theDictionary=新字典(StringComparer.Ordinal);
添加(“第一”,1);
bool exists=theDictionary.ContainsKey(“第一”);//当它不应该时,等于真

我在这里看不到什么?

你确定没有使用

这段代码使用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);
      }
    }
使用系统;
使用System.Collections.Generic;
静态类程序
{
静态void Main()
{
Dictionary theDictionary=新字典(StringComparer.Ordinal);
添加(“第一”,1);
bool exists=dictionary.ContainsKey(“第一”);
Console.WriteLine(存在);
}
}

在我的机器上计算为false。你能再检查一下你读的值是否正确吗?看起来像是野餐问题。嗯,当你看到“System.OrdinalComparer”时,实际上有点困惑。让你觉得你真的提供了StringComparer.Ordinal,因为你在任何地方都看不到“IgnoreCase”…@AustinSalonen
StringComparer.Ordinal
独立于语言。如果我们必须阅读来自第三方库的词典,这一点不难忽略。