一次向C#字典添加许多行 - c#

如果实例化一个新的Dictionary,我可以传递许多值:

Dictionary<string, string> data = new Dictionary<string, string>(){
    { "Key1", "Value1" },
    { "Key2", "Value2" },
    { "Key3", "Value3" },
    { "Key4", "Value4" },
    { "Key5", "Value5" },
}

但是,如果我已经有了Dictionary,例如在参数中传递它时,则需要为每个键值对调用Add

data.Add("Key1", "Value1");
data.Add("Key2", "Value2");
data.Add("Key3", "Value3");
data.Add("Key4", "Value4");
data.Add("Key5", "Value5");

我想知道是否存在一种“速记”方法一次将大量值添加到现有字典中-最好是本机地?如果是这样的话,可以接受权威的“否”。

不像我想要的那样干净,但这是我知道的两个选择。

这个允许一次传递许多值,但是需要创建一个新的Dictionary而不是更新现有的:

Dictionary<string, string> newData = new Dictionary<string, string>(data)
{
    { "Key6", "Value6"},
    { "Key7", "Value7"},
    { "Key8", "Value8"},
};

也可以创建一个扩展方法,但这仍然为每行调用Add

public static void AddMany<Tkey, TValue>(this Dictionary<Tkey, TValue> dict, Dictionary<Tkey, TValue> toAdd)
{
    foreach(KeyValuePair<Tkey, TValue> row in toAdd)
    {
        dict.Add(row.Key, row.Value);
    }
}

参考方案

如果是这样的话,可以接受权威的“否”。

就是这样。

不,没有AddRange或等效项,因为没有实际方法可以一次将多个项目添加到字典中。 List一次添加多个项目是有意义的,因为它们可以在一个命令中被复制到内部数组中。

对于Dictionary,必须计算每个项目的哈希码以确定该值将存储在哪个“存储桶”中,因此有必要遍历每个项目。因此,AddRange方法或其等效方法最多只能是语法糖。最糟糕的是,需要定义如果列表中的任何项目已经存在会发生什么情况。它会引发异常吗?如果是这样,将在重复项之前添加的项目保留在词典中吗?如果不是,是否会默默地跳过该项或替换重复项?

这些是没有直观正确答案的问题,因此尚未预先定义。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

如何从php中获取datatables jQuery插件的json数据 - php

我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…