我使用的包含错误吗?

时间:2019-02-21 16:18:44

标签: c# string contains

奇怪的事情正在发生在我身上。我必须执行以下功能:

private string CategoryByName(string path) {
        path.ToLower();
        if (path.Contains("obs") || path.Contains("obst")||path.Contains("birthing")) return "Birthing";
        if (path.Contains("sbu2")||(!path.Contains("sbu3")&&path.Contains("gyn"))) return "Gynecology SBU2";
        if (path.Contains("sbu3")) return "Gynecology SBU3";
        if (path.Contains("dia") || path.Contains("sprint")||(path.Contains("strechers"))) return "Strechers";
        if (path.Contains("one_day") || path.Contains("one day") || (path.Contains("oda"))) return "One-day care";
        return "";            
    }

我浏览了文件名列表。包括前“ INDO OBST.xlsx”,应返回为“出生”,但返回为“”。

3 个答案:

答案 0 :(得分:1)

包含的内容区分大小写,根据您知道的ToLower()判断。
但是,ToLower()不会操纵路径变量。相反,您应该重新分配它。您可以将path.ToLower()更改为path = path.ToLower()

答案 1 :(得分:0)

ToLower方法返回调整后的字符串:

path = path.ToLower();

答案 2 :(得分:0)

写一个看起来像这样的扩展方法:

public static class Extensions
{
    public static bool ContainsNoCase(this string stringToLookIn, string stringToFind)
    {
        return stringToLookIn.IndexOf(stringToFind, StringComparison.OrdinalIgnoreCase) >= 0;
    }
}

并使用ContainsNoCase代替Contains