在switch语句中使用对象的string.contains方法?

时间:2011-08-02 20:29:46

标签: c# .net

基本上是:

switch (string.contains(x))
{
    case(x = "asdf"):
        break;
    case(x = "jkl"):
        break;
    case(x = "qwerty"):
        break;
}

编辑:对不起,伙计们,我理想的是让switch语句检查字符串中的几个不同的值,并根据它在字符串中找到的值,执行相应的代码。

5 个答案:

答案 0 :(得分:6)

不幸的是,你不能这样做,但你可以应用“功能模式匹配”。请阅读此处了解如何操作:

http://codebetter.com/matthewpodwysocki/2008/09/16/functional-c-pattern-matching/

答案 1 :(得分:4)

你的意思是这个,据我所知:

if (string.Contains(x))
{
    switch (x)
    {
        case "asdf":
            break;
        case "jkl":
            break;
        case "qwerty":
            break;
    }
}

答案 2 :(得分:4)

Contains(string s)方法返回一个布尔值,因此在switch语句中不允许这样做。

答案 3 :(得分:3)

switch关键字有一些魔法(查找表),因为它永远不会抛出异常。

您可以像以下一样简洁地重写它:

if (x.Contains("asdf"))
{}
else if (x.Contains("jkl"))
{}
else if (x.Contains("qwerty"))
{}

答案 4 :(得分:-1)

你试过这个:

    switch (true)
    {
        case string.Contains("asdf"):
            break;
        case string.Contains("jkl"):
            break;
        case string.Contains("qwerty"):
            break;
    }