OK. The "List of Dictionaries" is probably over complicating the issue.
You get the same error just with this line:
var x = new Dictionary<string, string>() { "test", "" };
The issue is populating a dictionary in this manner.
If my example was changed to:
var x = new Dictionary<string, string>();
x.Add("test", "");
then going back to your original example, this will work:
List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
var x = new Dictionary<string, string>();
x.Add("test", "" );
data.Add(x);
BTW, why would you require a list of dictionaries. Sounds quite a compilcated design pattern to use - although technically valid.