C# 带图表的Listitems和if语句

C# 带图表的Listitems和if语句,c#,asp.net,C#,Asp.net,我有一个图表,其中我希望能够根据复选框列表添加或删除行。 为此,我提出了以下代码: foreach (ListItem lstitem in CBLYear.Items) { if (lstitem.Value == "2014") { Chart3.Series["2014"].XValueMember = "Month"; Chart3.Series["2014"].YValueMemb

我有一个图表,其中我希望能够根据复选框列表添加或删除行。 为此,我提出了以下代码:

        foreach (ListItem lstitem in CBLYear.Items)
    {

        if (lstitem.Value == "2014")
        {
            Chart3.Series["2014"].XValueMember = "Month";
            Chart3.Series["2014"].YValueMembers = "2014";
        }
        if (lstitem.Value == "2013")
        {
            Chart3.Series["2013"].XValueMember = "Month";
            Chart3.Series["2013"].YValueMembers = "2013";
        }
        if (lstitem.Value == "2012")
        {
            Chart3.Series["2012"].XValueMember = "Month";
            Chart3.Series["2012"].YValueMembers = "2012";
        }
        if (lstitem.Value == "2011")
        {
            Chart3.Series["2011"].XValueMember = "Month";
            Chart3.Series["2011"].YValueMembers = "2011";
        }
        if (lstitem.Value == "2010")
        {
            Chart3.Series["2010"].XValueMember = "Month";
            Chart3.Series["2010"].YValueMembers = "2010";
        }
        if (lstitem.Value == "2009")
        {
            Chart3.Series["2009"].XValueMember = "Month";
            Chart3.Series["2009"].YValueMembers = "2009";
        }
    }

页面加载时,图形上没有显示任何内容(如所需)。但是,一旦单击任何一个项目,所有系列都会显示,而不仅仅是我单击的一个。这是为什么?

您正在迭代整个项目集合,因此当然每个系列都会显示

您需要检查“Selected”属性。您可以使用LINQ轻松做到这一点:

foreach (ListItem lstitem in CBLYear.Items.Where(l => l.Selected))
{
  ....
}

请参阅MSDN文档:(特别是“简介”部分)

您需要使用
,否则如果从第2个条件开始,您应该使用switch语句,因为在您的代码中,您正在检查许多条件,在switch中,它将只执行特定情况

switch(Convert.ToString(lstitem.Value))
{
    case"":
        {
            // put all your conditions in cases 
        }
        break;
    default : 
        break;
}

我是编程新手,不习惯LINQ。你能解释一下我的电脑在哪里标记它吗。