C#String.Contains()故障?

问题描述:

我想检查一个字符串是否包含特定的字符串。C#String.Contains()故障?

简单地说,这里是我的代码(这是该计划的一小部分,我省略不相关的代码):

string y = someValue; 
for(string x in someCollection) 
      { 
       if (x.Contains(y)) 
       { 
        Debug.WriteLine(x + " Contains " + y); 
       } 
       else 
       { 
        Debug.WriteLine(x + " Does Not Contain " + y); 
       } 
      } 

然而,这是我所得到的结果是:

"Alligator" Contains "Alligator" 
"Loves" Does Not Contain "Love" 
"To Eat You" Does Not Contain "You" 

那么,怎么过!?! Contains()仅在两个字符串完全匹配时才返回true有些东西在这里不正确...

ps。字符串x和y从文本文件中读取,并且已经通过一些文本切割过程,如果这会帮助...

+1

您的示例字符串是您匹配的*精确*字符串吗?我怀疑你有一些打印出来的Unicode字符串,但是由不同的字符组成。 – Gabe 2011-03-13 05:28:30

+0

文件中的文本是确切的字符串。我读到这样的记录是这样的: “你”|“鳄鱼”|“爱”\t“鳄鱼”|“爱”|“吃你” – tsong99 2011-03-13 05:34:09

+0

@Robert Levy @Gabe是的,我怀疑是相同的事情。那么,我该如何检查这些东西呢?问题与我的文本文件中的编码格式有关吗? (我只需在NotePad中输入它并将其保存到我的程序中) – tsong99 2011-03-13 05:36:43

您的输出是正确的。你的期望是错误的。你的困惑在于引用字符。 "Loves"确实不包含"Love",但它确实包含"Love

+3

哇,我不得不承认,很好的接收。 – BoltClock 2011-03-13 05:31:18

+0

Ahhhh,废话!这很尴尬。哈哈!非常感谢! :) – tsong99 2011-03-13 05:41:08

+0

哈!很好的关注细节。 – 2011-03-13 06:17:25