在foreach循环中使用标签控件在单个标签中显示多个值

时间:2012-12-27 06:10:07

标签: c#-4.0 foreach label

//program.cs
foreach (Mutant mutant in mutants)
{
    label12.Text=mutant.displayInfo();
}

//Mutant.cs 
public abstract int dangerQuotient();
public String displayInfo()
{
    return(codename + " " + dangerQuotient().ToString());
}

//physicalMutant.cs 
public override int dangerQuotient()
{
    return level * IQ * strength;
}

//elementMutant.cs
public override int dangerQuotient()
{
    return level * region;

}

Mutant是我的基类,我有两个派生类physicalMutant和elementMutant。在最后,我将在label12中单独获取elementMutant类的输出。如何在同一标签中获得physicalMutant的输出。 通过在foreach循环中使用消息框控件,我可以从两个派生类中的displayQuotient()获取值,但是通过使用标签,我只能显示最后一个迭代值。如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

我真的不确定你想要什么,但如果要将你的所有Mutants dangerQuotient添加到你的标签上,你需要将你的foreach语句改为这样的。您正在每次迭代foreach循环时替换标签的内容。

label12.Text = ""; // or just delete the text in the designer
foreach(Mutant mutant in mutants)
{
    label12.Text += mutant.displayInfo() + "\n"; //  This will create a seperate line for each displayInfo
   // label12.Text += mutant.displayInfo();  //This will add them on the same line
}