【发布时间】:2016-05-17 15:16:52
【问题描述】:
我有一个字符串列表,其中包含一些带有一些特殊字符的字符串,例如 -、[、]、(、)。
我正在将一个字符串传递给一个方法,我需要在该方法中解析上述列表并查找是否找到了完全匹配的内容。
为此,我编写了以下代码,但是当字符串中出现特殊字符时,它无法进行比较。
foreach (var item in myList)
{
if (myInput.Trim().ToUpper() == item.Trim().ToUpper() ) //Here myInput is "In - Com [SP]"
{
count++;
}
}
但是,如果我通过前面的 @ 符号比较静态字符串,那么比较工作正常。例如:
if (item == @"In - Com [SP]")
{
count++;
}
谁能帮我把它合并成一个动态的字符串列表? 注意:我们不能将 @ 与字符串变量连接起来。
使用正则表达式有什么方法吗?
【问题讨论】:
-
您需要告诉我们
myInput和myList中的内容。 -
字符串比较一般使用
Equals()方法。 Check here for the differences -
@" 字符串打开器指示字符串忽略转义字符,例如 \n 这将是换行符,它对字符串比较没有影响,在这种情况下,问题可能出在您的字符串中
-
尝试添加
Console.WriteLine("\""+myInput.Trim().ToUpper()+"\" \"" +item.Trim().ToUpper()+"\"");这会让您更好地了解正在比较的内容