title: Why is this ArrayList duplicating he rows
body: <p>I am junior developer and I am trying to populate an ArrayList from a Dictionary. My problem is rather then adding a new record to the ArrayList it adds the new record but also overwrites the values for all the other values in the array.</p>
  
  <p>So if I inspect the values as the ArrayList is being populated I see the values from the Dictionary as expected.  But when that row is inserted into the ArrayList all of the existing rows are over written with the data from current Dictionary Row.  So I end up with an ArrayList with several rows that are a duplicate of the last record added from the dictionary.  My code is shown below.  Can someone please tell me what am I doing wrong? Code below</p>
  
  <pre><code> ArrayList arrData = new ArrayList();
                  eSummary edata = new eSummary();
                  //Starts with the first 50 recods retrieved and adds them to the ArrayList.  Loops thru to get remaining records
                  while (blnEmpty)
                  {
                      if (response.IsSuccessStatusCode)
                      {
                          string json = response.Content.ReadAsStringAsync().Result;
                          var jss = new JavaScriptSerializer();
                          var dict = jss.Deserialize&lt;Dictionary&lt;string, dynamic&gt;&gt;(json);
  
                          for (int i = 0; i &lt; dict.Values.Sum(x =&gt; x.Count); i++)
                          {
                              foreach (var item in dict)
                              {
                                  string checkId = (dict["data"][i]["Id"]);
  
                                  edata.Id = dict["data"][i]["Id"];
                                  edata.idExternal = (dict["data"][i]["idExternal"]) == null ? "" : (dict["data"][i]["idExternal"]);
                                  edata.Type = "Video";
                                  edata.ownerId = (dict["data"][i]["uploadedByOwnerId"]);
                                  edata.dateUploaded = Convert.ToDateTime((dict["data"][i]["dateUploaded"]));
                                  edata.durationSeconds = Convert.ToDouble((dict["data"][i]["durationSeconds"]));
                                  edata.category = (dict["data"][i]["categories"]).Count &lt; 1 ? string.Empty : (dict["data"][i]["categories"][0]);
                                  edata.title = (dict["data"][i]["title"]) == string.Empty ? string.Empty : (dict["data"][i]["title"]);
                                  edata.dateRecordStarted = Convert.ToDateTime((dict["data"][i]["dateRecordStart"]));
                                  edata.DateAPIRan = DateTime.Now;
                                  if (CheckAutoTag(checkId, dict["data"][i]["tags"]))
                                  {
                                      edata.AutoTagged = true;
                                  }
                                  else edata.AutoTagged = false;
                                  arrData.Add(edata);
  </code></pre>