I am adding data to a List, save it as a Session and then use it. What I don't want to is to have duplicatres in the list. This is what I use
public List<string> values = new List<string>(); protected void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { if (Session["MyList"] == null) { Session["MyList"] = new List<string>(); } } } protected void btnAddClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtActivitate.Text)) { var text = txtActivitate.Text.ToString(); values = Session["MyList"] as List<string>; // Retrieve the list from the session lock(values) { if (!values.Contains(text)) { values.Add(text); Session["MyList"] = values; foreach (string value in values) { Message.Text += value + "<br />"; } txtActivitate.Text = string.Empty; txtActivitate.Focus(); } else { txtActivitate.Text = string.Empty; txtActivitate.Focus(); } } } }
On first click I got the right value entered. On the second click, I get the first value doubled and new value. On third click I get all the previous values plus the new one. What am I doing wrong, please?