在文本文件中不区分大小写的搜索

时间:2010-11-23 14:41:44

标签: c# case-insensitive

我需要不区分大小写搜索以下代码...

  while ((line = file.ReadLine()) != null)
    {
     if (line.Contains(line2))
     dest.WriteLine("LineNo : " + counter.ToString() + " : " + line);
     counter++;
    }

我试过这样的

if (line.Contains(line2,StringComparer.OrdinalIgnoreCase))

但它似乎不合适。任何建议??

6 个答案:

答案 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();

将两边转换为大写或小写

它实际上不区分大小写。