title: How keep the memory clear in the C# applications (DataTable dispose)?
body: <p>What's the best way to dispose a DataTable and clear all RAM memory related in the C# application?</p>
  
  <p>I have a simple code:</p>
  
  <pre><code>private void Form1_Load(object sender, EventArgs e)
  {
      using (DataTable vDT = new DataTable())
      using (DataTable vDTsec = new DataTable())
      {
          vDT.Columns.Add("A");
          vDT.Columns.Add("B");
          vDT.Columns.Add("B_1");
  
          vDTsec.Columns.Add("A");
          vDTsec.Columns.Add("B");
          vDTsec.Columns.Add("E");
  
          for (int x = 1; x &lt;= 1000000; x++)
          {
              vDT.Rows.Add(new object[] { x, "B" + x.ToString(), "C" + x.ToString() });
              vDTsec.Rows.Add(new object[] { x, "B" + x.ToString(), "E" + x.ToString() });
          }
  
          vDT.Dispose();
          vDTsec.Dispose();
      }
  
      GC.Collect();
      GC.WaitForFullGCApproach(100);
      GC.WaitForPendingFinalizers();
  }
  </code></pre>
  
  <p>If I put a breakpoint before to create the million of rows the application has a size of ~4MB:
  <img src="https://i.stack.imgur.com/9xXF3.png" alt="1aa"></p>
  
  <p>After the creation of all rows, the memory has a huge increase (~428MB):
  <img src="https://i.stack.imgur.com/fQg81.png" alt="2aa"></p>
  
  <p>Even after to dispose the both tables, the memory continues in ~428MB:
  <img src="https://i.stack.imgur.com/HCQHg.png" alt="3aa"></p>
  
  <p>How I can free this memory from the program?</p>