What's the best way to dispose a DataTable and clear all RAM memory related in the C# application?

I have a simple 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 <= 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();
}

```

If I put a breakpoint before to create the million of rows the application has a size of ~4MB:
![1aa](https://i.stack.imgur.com/9xXF3.png)

After the creation of all rows, the memory has a huge increase (~428MB):
![2aa](https://i.stack.imgur.com/fQg81.png)

Even after to dispose the both tables, the memory continues in ~428MB:
![3aa](https://i.stack.imgur.com/HCQHg.png)

How I can free this memory from the program?