title: Unable to cast Session variable Containing a List Of object to list
body: <p>Why Is the following code producing error of <strong>"Object reference not set to an instance of an object</strong> Even when i am using the set session method inboth of the button click events?</p>
  
  <pre><code>public partial class MergePopUp : System.Web.UI.Page
  {
  
  List&lt;MergeAccounts&gt; Mlist = new List&lt;MergeAccounts&gt;();
  
  protected void Page_Load(object sender, EventArgs e)
  {
  
  }
  private void SetSession()
  {
      if (Session["Account"] == null)
      {
          Session["Account"] = Mlist;
      }
  }
  
  
  protected void AddToMergeList_Click(object sender, EventArgs e)
  {
      MergeAccounts obj = new MergeAccounts();
      obj.AccountNumber = Convert.ToInt32(AccountNumber.Text);
      obj.PinNumber = Convert.ToInt32(PinNumber.Text);
      int temp = obj.IsAccNoValid(obj.AccountNumber, obj.PinNumber);
      if (temp == 0)
      {
          FoundOrNot.Visible = true;
          FoundOrNot.Text = "Enter a valid Pin Number against this Account number";
      }
      else
      {
          DataSet MyDataSet = obj.ShowDetails(obj.AccountNumber, obj.PinNumber);
          foreach (DataRow myRow in MyDataSet.Tables[0].Rows)
          {
              AccountTitle.Text = myRow["Title"].ToString();
              Balance.Text = myRow["Balance"].ToString();
              CreationDate.Text = myRow["CreationDate"].ToString();
          }
          obj.AccountTitle = AccountTitle.Text;
          obj.Balance = Convert.ToDouble(Balance.Text);
          obj.CreationDate = Convert.ToDateTime(CreationDate.Text);
          Mlist.Add(obj);
          Session["Account"] = Mlist;
          SetSession();
      }
  }
  protected void AddNext_Click(object sender, EventArgs e)
  {
      foreach (TextBox i in this.Page.Form.Controls.OfType&lt;TextBox&gt;().ToList())
      {
          i.Text = null;
      }
      FoundOrNot.Visible = false;
  }
  protected void CheckList_Click(object sender, EventArgs e)
  {
      SetSession();
      Response.Redirect("Merge.spx");
  }
  
  }
  </code></pre>