複数の結果が得られる可能性があると仮定します。リストを使用してすべての結果を保存することをお勧めします。このようにして、関数が完了した後にリストにアクセスし、それを使用してすべての値にアクセスできます。
List<String> results = new List<String>;
if (ctrl is Control)
{
Control c = (Control)ctrl;
foreach (object innerCtrl in c.Controls)
{
if (innerCtrl is System.Web.UI.WebControls.CheckBox)
if (((CheckBox)innerCtrl).Checked == true)
{
string resultado = (((CheckBox)innerCtrl).Text);
if (!String.IsNullOrEmpty(resultado))
results.Add(resultado);
}
else
{
TextBox1.Text = "não";
}
}
}
if (results.Count > 0)
{
// We got results. Do something with our results.
foreach (var result in results)
{
Console.Write(results);
}
}
コードを独自の関数に移動することをお勧めします。通常は、関数を単純にするために 1 つのことだけを行うようにしますが、最初は、このようなものに変えることもできます。
public List<String> FetchTextFromCheckBoxes(Control cntrl)
{
List<String> results = new List<String>();
if (ctrl is Control)
{
Control c = (Control)ctrl;
foreach (object innerCtrl in c.Controls)
{
if (innerCtrl is System.Web.UI.WebControls.CheckBox)
if (((CheckBox)innerCtrl).Checked == true)
{
string resultado = (((CheckBox)innerCtrl).Text);
if (!String.IsNullOrEmpty(resultado))
results.Add(resultado);
}
else
{
TextBox1.Text = "não";
}
}
}
return results;
}
次に、アプリケーションの主要部分でこのように使用するだけです。
List<String> results = FetchTextFromCheckBoxes(ctrl);
if (results.Count > 0)
{
// We got results. Do something with our results.
foreach (var result in results)
{
Console.Write(results);
}
}