Eliminate duplication in similar fake data access classes Can I combine this two classes and have one fake db class?

public class FakeDb : Dictionary&lt;string, List&lt;string&gt;&gt;
{
    public const string Table1 = "Table1";

    public void AddToTable(string tableName, string line)
    {
        if(!ContainsKey(tableName))
            Add(tableName, new List&lt;string&gt;());

        List&lt;string&gt; rows = GetTableData(tableName);
        rows.Add(line);
    }

    internal List&lt;string&gt; GetTableData(string tableName)
    {
        return this[tableName];
    }
}




public class FakeComplexDb : Dictionary&lt;string, List&lt;Dictionary&lt;string,List&lt;string&gt;&gt;&gt;&gt;
{
    public void AddToTable(string tableName, Dictionary&lt;string, List&lt;string&gt;&gt; line)
    {
        if (!ContainsKey(tableName))
            Add(tableName, new List&lt;Dictionary&lt;string, List&lt;string&gt;&gt;&gt;());

        List&lt;Dictionary&lt;string, List&lt;string&gt;&gt;&gt; rows = GetTableData(tableName);
        rows.Add(line);
    }

    internal List&lt;Dictionary&lt;string, List&lt;string&gt;&gt;&gt; GetTableData(string tableName)
    {
        return this[tableName];
    }
}
Why not use generics:

public class FakeDb&lt;TList&gt; : Dictionary&lt;string, List&lt;TList&gt;&gt;
{
    public const string Table1 = "Table1";

    public void AddToTable(string tableName, TList line)
    {
        if (!ContainsKey(tableName))
        {
            Add(tableName, new List&lt;TList&gt;());
        }

        List&lt;TList&gt; rows = GetTableData(tableName);
        rows.Add(line);
    }

    private List&lt;TList&gt; GetTableData(string tableName)
    {
        return this[tableName];
    }
}


Then to use:

var simpleDB = new FakeDb&lt;string&gt;();
var complexDb = new FakeDb&lt;Dictionary&lt;string, List&lt;string&gt;&gt;&gt;();