无法将类型为LiteralControl的对象强制转换为类型.Label

我的代码:
int index = 0;
for ( index = 0; index < this.panel.Controls.Count; index++)
{
if (this.panel.Controls[index].ID==Session["vote"].ToString())
{
Response.Write(this.panel.Controls[index].ID);
Label lab = (Label)this.panel.Controls[index];
sum++;
break;
}

        }
        int j = 0;
        for (j=0; j < this.panel.Controls.Count; j++)
        {
            if (j == index + 1)
            {
                Response.Write(this.panel.Controls[j].ID);
                _Label lab = (Label)this.panel.Controls[j];_
                Response.Write(lab.ID);
                 lab.Text = (Double.Parse(lab.Text) + 1).ToString();
                //Response.Redirect("VoteResult.aspx");
            }
        }
                    问题:第一个强制转换label就没有毛病,第二个就出错,为什么?怎么解决这个问题?

不是所有的人都是中国人。
第一次 张三转换为中国人,没问题
第二次,汤姆转换为中国人,不行了。
你要判断下
Label lab = null;
if (this.panel.Controls[j] is Label)
lab = (Label)this.panel.Controls[j];