c#weird Dictionary ContainsKey或StringComaprer

时间:2016-03-24 16:27:39

标签: c# string dictionary containskey stringcomparer

它是某种奇怪的魔法,ContainsKey返回false。我尝试使用InvariantCulture比较器,结果相同。

   public function pdf()
    {
         $pdf = PDF::loadView('home');
        return $pdf->stream();

    }

我通过删除键中的引号并再次键入它来解决它。我想知道为什么会这样。

1 个答案:

答案 0 :(得分:3)

在某些字符串的开头有零宽度空格(U + 200B)。例如,复制此:

{"​Drop card", Drop},

进入Unicode Explorer here,你会看到类似的内容:

Unicode explorer

现在,我们不知道该角色的来源,但我怀疑你是在复制并粘贴其他地方的文字。

请注意,字典或string或.NET中的任何内容的行为都没有错...它只是 源代码中的问题。如果你更清楚地表达相同的字符串,你会看到完全相同的行为:

{"\u200BDrop card", Drop},