0

我在 lblsubject.text 中有逗号分隔的值,例如 English,Science,我使用下面的代码进行分隔。下面给出的代码在 Label1 和 Label2 中都显示 Science,因为它被覆盖......但我想在一个标签中显示英语,在另一个标签中显示科学。怎么做...请帮助..!

string[] lines = Regex.Split(lblsubject.Text, ",");

foreach (string line in lines)
 {
   Label1.Text = line;
   Label2.Text = line;          
 }
4

3 回答 3

3

您将在数组中获得两个元素,为什么要使用 foreach 循环。你可以做

Label1.Text = lines[0];
Label2.Text = lines[1]; 
于 2012-06-14T05:11:55.597 回答
2

如果您不知道会有多少标签,您可能想要动态添加标签。(另请注意,Regex.Split 对此有点过分,您可以只使用 String.Split 扩展方法。)

string[] lines = lblsubject.Text.Split(',');

for (int i=0 ; i<lines.Length ; i++)
{
    var newLabel = new Label();
    newLabel.Text = lines[i];
    form1.Controls.Add(newLabel);
}

其中form1可以是您想要添加标签的任何容器控件。

另一种选择可能是将 HTML 直接添加到您的输出中。像这样的东西:

var html = string.Join("<br/>", 
    lblsubject.Text.Split(',').Select( 
        category => string.Format("<div>{0}</div>", category) 
    )
);
panel1.Controls.Add(new LiteralControl(html));

(同样,panel1只是您的输出的容器。)

编辑,根据评论

DrowDownList1.Items.AddRange(
    lblsubject.Text.Split(',')
        .Select(category => new ListItem(category))
        .ToArray()
);
于 2012-06-14T05:19:26.753 回答
0

使用Split()功能

string[] lines = lblsubject.Text.Split(',');

Label1.Text = lines[0];         
Label2.Text = lines[1]; 
于 2012-06-14T05:14:51.700 回答