-2

您好,我正在尝试向这个复杂对象添加值。我正在尝试使用 JSON.Net 将此对象转换为 JSON。

Dictionary<string, List<Dictionary<string, int>>> MyList 
    = new Dictionary<string, List<Dictionary<string, int>>>();

最终结果应该是这样的:{ "Documents": [ { "Title": , "DatePublished": , "DocumentURL": , "ThumbnailURL": , "Abstract": , "Sector": "", "Country": [ "" ], "Document Type": "" } 我已经尝试过了,但没有奏效:

MyList["Dictionary"][0].Add("test", 4);
4

4 回答 4

3

如果您有一个Dictionary<string, int> dictA,您可以通过

Dictionary<string, int> dictA = new Dictionary<string, int>();
dictA.Add("SomeString", 99);

然后将此字典添加到您的List<Dictionary<string, int>>使用以下

List<Dictionary<string, int>> dictList = new List<Dictionary<string, int>>();
dictList.Add(dictA);

现在您可以通过以下方式将其添加到您的Dictionary<string, List<Dictionary<string, int>>> myList对象中

Dictionary<string, List<Dictionary<string, int>>> myList = 
    new Dictionary<string, List<Dictionary<string, int>>>();
myList.Add("SomeString", dictList);

我希望这有帮助。

于 2013-04-08T14:45:14.347 回答
2

对于它的价值,这里有一个示例循环,它展示了如何使用Dictionary.AddCollection Initalizer

Dictionary<string, List<Dictionary<string, int>>> MyList = 
    new Dictionary<string, List<Dictionary<string, int>>>();

foreach (int i in Enumerable.Range(1, 100))
{
    var list = new List<Dictionary<string, int>>();
    foreach (int ii in Enumerable.Range(1, 100))
        list.Add(new Dictionary<string, int>() { { "Item " + ii, ii } });
    MyList.Add("Item " + i, list);
}
于 2013-04-08T14:43:00.083 回答
1
MyList.Add("key1", new List<Dictionary<string, int>());
MyList["key1"].Add(new Dictionary<String, int>());

等等

恐怕需要您提供更多细节才能提供更多信息。

于 2013-04-08T14:42:30.057 回答
1

虽然看起来很复杂,其实很简单:

您的字典采用 的键string和 的值List<Dictionary<string, int>>。因此,要添加一个,该值应该始终是 type List<Dictionary<string, int>>

于 2013-04-08T14:43:12.433 回答