我需要不区分大小写搜索以下代码...
while ((line = file.ReadLine()) != null)
{
if (line.Contains(line2))
dest.WriteLine("LineNo : " + counter.ToString() + " : " + line);
counter++;
}
我试过这样的
if (line.Contains(line2,StringComparer.OrdinalIgnoreCase))
但它似乎不合适。任何建议??
答案 0 :(得分:4)
修改强>
忘掉我的第一个答案,我误解了这个问题。
您应该使用String.IndexOf (String, StringComparison):
foreach (String Row in File.ReadLines("Test.txt"))
{
if (Row.IndexOf("asd", StringComparison.InvariantCultureIgnoreCase) != -1)
{
// The row contains the string.
}
}
答案 1 :(得分:4)
一种方法是创建一个字符串扩展方法:
if (line.ContainsCaseInsensitive(value))
{
// ..
}
public static bool ContainsCaseInsensitive(this string source, string find)
{
return source.IndexOf(find, StringComparison.CurrentCultureIgnoreCase) != -1;
}
答案 2 :(得分:3)
在String.Contains
documentation at MSDN的用户提供的评论中,提供了一种解决方法。
bool contains = str1.IndexOf(str2, StringComparison.OrdinalIgnoreCase) >= 0;
答案 3 :(得分:1)
尝试StringComparer。CurrentCultureIgnoreCase。
答案 4 :(得分:1)
使用正则表达式(.NET中的Regex类)并指定不区分大小写的选项(构造函数的一部分)。
答案 5 :(得分:-3)
您可以使用"myString".ToLower();
它实际上不区分大小写。