列表中的c#字典[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表中的c#字典[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我需要在这个列表中使用字典

List<Dictionary<string, string>> People= new List<Dictionary<string, string>>();

到目前为止,我已经尝试用它来填充它

People[0] = new Dictionary<string, string>();
People[0].Add("ID number", "1");
People[0].Add("Name", "John");

并将其显示在控制台上

for (int i = 0; i < People.Count; i++)
{
    Console.WriteLine(People[i]["ID number"]);
    Console.WriteLine(People[i]["Name"]);
}

我在运行时遇到System.ArgumentOutOfRangeException错误,有任何修复?

答案

您需要使用Add将项目添加到C#中的List

将您的代码更改为:

    List<Dictionary<string, string>> People= new List<Dictionary<string, string>>();

    People.Add(new Dictionary<string, string>());
    People[0].Add("ID Number", "1");
    People[0].Add("Name", "John");
    for (int i = 0; i < People.Count; i++)
    {
        Console.WriteLine(People[i]["ID Number"]);
        Console.WriteLine(People[i]["Name"]);
    }

但是,我建议创建一个代表Person的类:

public class Person 
{
    public string ID { get; set;}
    public string Name { get; set; }

    public Person(string id, string name)
    {
        ID = id;
        Name = name;
    }
}

并做

var people = new List<Person>();
var person = new Person("1", "John");
people.Add(person);
for (int i = 0; i < people.Count; i++)
{
    Console.WriteLine(people[i].ID);
    Console.WriteLine(people[i].Name);
}
另一答案

更换

People[0] = new Dictionary<string, string>();

People.Add(new Dictionary<string, string>());

你得到一个System.ArgumentOutOfRangeException,因为你访问一个不存在的项目。

另一答案
People.Add(new Dictionary<string, string>());

你不需要先在List中添加第一个条目吗?

以上是关于列表中的c#字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章

列表中的c#字典[重复]

Python代码阅读(第40篇):通过两个列表生成字典

Python:如何从列表中的字典创建 DataFrame 列 [重复]

附加到 Python 字典中的列表 [重复]

如何创建片段以重复变量编号中的代码行

在 setdefault 之后附加到字典中的列表 [重复]