Хорошо, у меня есть список флажков с n флажками. Каждый раз, когда я устанавливаю флажок, я хочу, чтобы этот номер добавлялся в список (Выбрано). Когда флажок снят, я хочу удалить его из списка. Затем, когда я нажимаю кнопку, я хочу отобразить список в текстовом поле. Вот мой код:
public partial class _Default : System.Web.UI.Page
{
List<int> Chosen = new List<int>();
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Chosen"] == null)
{
Session["Chosen"] = new List<int>();
}
Chosen = (List<int>)Session["Chosen"];
for (int i = 0; i < Numbers.Items.Count; i++)
{
if (Numbers.Items[i].Selected) { Chosen.Add(i + 1); }
else { Chosen.Remove(i + 1); }
}
}
protected void Button1_Click(object sender, EventArgs e)
{
foreach (var i in Chosen)
{
TextBox1.Text = Chosen[i].ToString();
}
}
}
Излишне говорить, что он работает не так, как я хочу. Когда я выбираю 1 и нажимаю кнопку, в поле записывается 1, но если я снимаю выделение и нажимаю кнопку, там остается 1. Также, если я выберу любое число, кроме 1, я получаю сообщение об ошибке в этой строке:
TextBox1.Text = Chosen[i].ToString();
Указание индекса вне допустимого диапазона. Тем не менее, когда я отлаживаю, кажется, что числа правильно распределяются по списку.