切换列表

时间:2016-04-02 09:51:31

标签: c#

我可以制作动态切换语句,即如果我有一个包含1,2,3,4,5的列表而不是手动执行大小写1:,大小写2:等我可以使用for循环来完成,如下所示?

代码不起作用。 Visual Studio给出一个错误,说case必须是引用的标签,我是初学者。

    switch (selectedShow)
    {
        //Show list is a list of type Shows 
        for (int i = 0; i < showList.Count; i+=1)
        {
            case i:
            {
            waitingList[waitingList.Count].Show = showList[selectedShow];
            break;
            }
        }

    }

6 个答案:

答案 0 :(得分:2)

似乎你只是想要:

waitingList[waitingList.Count].Show = showList[selectedShow];

答案 1 :(得分:1)

Switch语句用于为不同的值进行不同的操作。那就是&#34;案例&#34;选择要继续的值。在您的示例中,只对列表中的任何值实施一个操作。所以,你不需要申请&#34;如果&#34;用于检查selectedShow等于列表中某个项目的条件的语句。在C#中迭代列表的首选方法是foreach操作。例如:

 foreach (var i in showList)
        {
            if(i == selectedShow)
            {
            waitingList.Last().Show = i;
            break;
            }
        }

我还替换了unsafe waitingList。[waitingList.Count]以获得更清晰的waitingList.Last()方法(您可能需要使用System.Linq添加;在文件的顶部)

答案 2 :(得分:0)

如前所述,您不需要case语句。您可以编写类似于以下内容的代码:

//Show list is a list of type Shows 
for (int i = 0; i < showList.Count; i+=1)
{
    waitingList[waitingList.Count].Show = showList[i];
    if (someBreakConditionFunction())
       break;
}

答案 3 :(得分:0)

此代码段:

//Show list is a list of type Shows 
        for (int i = 0; i < showList.Count; i+=1)
        {
            case i:
            {
            waitingList[waitingList.Count].Show = showList[i];
            break;
            }
        }

毫无意义,对于i的每个值,您将执行大小写条件:

代替:

for (int i = 0; i < showList.Count; i+=1)
    { 
        waitingList[waitingList.Count].Show = showList[i];
    }

答案 4 :(得分:0)

switch (selectedShow)
{
    //Show list is a list of type Shows 
    for (int i = 0; i < showList.Count; i+=1)
    {
        waitingList[waitingList.Count].Show = showList[i];
        //Add some condition if you want to break the loop. 
        if(breakCondition)
           break;
    }
}

答案 5 :(得分:0)

使用forloop和if语句应该有效。我可以使用for循环遍历列表,如果所选的show(用户在终端中选择)是当前迭代的节目。然后我可以在waitingList中引用该节目。

Data.HashMap