标签: keyvaluepair

为什么我不能用一对作为键来编译unordered_map?

我正在尝试unordered_map使用整数创建一个映射对:

#include <unordered_map>

using namespace std;
using Vote = pair<string, string>;
using Unordered_map = unordered_map<Vote, int>;
Run Code Online (Sandbox Code Playgroud)

我有一个班级,我已宣布Unordered_map为私人会员.

但是,当我尝试编译它时,我收到以下错误:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:948:38:未定义模板的隐式实例化'std :: __ 1 :: hash,std :: __ 1: :basic_string >>'

如果我使用常规地图map<pair<string, string>, int>而不是使用,我没有收到此错误unordered_map.

是否无法pair在无序地图中使用密钥?

c++ dictionary unordered-map keyvaluepair

45
推荐指数
6
解决办法
5万
查看次数

通过EF/Linq投射到KeyValuePair

我正在尝试从EF/Linq查询加载KeyValuePairs列表,如下所示:

return (from o in context.myTable 
select new KeyValuePair<int, string>(o.columnA, o.columnB)).ToList();
Run Code Online (Sandbox Code Playgroud)

我的问题是,这会导致错误

"LINQ to Entities中仅支持无参数构造函数和初始值设定项."

有一个简单的方法吗?我知道我可以为此创建一个自定义类而不是使用KeyValuePair,但这似乎重新发明了轮子.

c# linq entity-framework projection keyvaluepair

33
推荐指数
2
解决办法
3万
查看次数

键值对列表

我有一个包含以下元素的列表:

{[A,1] ; [B,0] ; [C,0] ; [D,2]; [E,0] ; [F,8]}
Run Code Online (Sandbox Code Playgroud)

当Variable = 3 - >我希望返回值为A,D

当变量= 11 - >返回值为A,D,F

当2 - >返回值为D时

等等.

 int sum = myList.Sum(x => x.Value) 
Run Code Online (Sandbox Code Playgroud)

如何获得相应的密钥(A,D,F)?

c# arrays keyvaluepair

33
推荐指数
1
解决办法
17万
查看次数

将List <KeyValuePair <string,string >>序列化为JSON

我是JSON的新手,请帮忙!

我试图将a序列List<KeyValuePair<string, string>>化为JSON

目前:

[{"Key":"MyKey 1","Value":"MyValue 1"},{"Key":"MyKey 2","Value":"MyValue 2"}]
Run Code Online (Sandbox Code Playgroud)

预期:

[{"MyKey 1":"MyValue 1"},{"MyKey 2":"MyValue 2"}]
Run Code Online (Sandbox Code Playgroud)

我提到了这个这个的一些例子.

这是我的KeyValuePairJsonConverter:JsonConverter

public class KeyValuePairJsonConverter : JsonConverter
{
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        List<KeyValuePair<object, object>> list = value as List<KeyValuePair<object, object>>;
        writer.WriteStartArray();
        foreach (var item in list)
        {
            writer.WriteStartObject();
            writer.WritePropertyName(item.Key.ToString());
            writer.WriteValue(item.Value.ToString());
            writer.WriteEndObject();
        }
        writer.WriteEndArray();
    }

    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(List<KeyValuePair<object, object>>);
    }

    public override object ReadJson(JsonReader reader, Type objectType, …
Run Code Online (Sandbox Code Playgroud)

c# json keyvaluepair

21
推荐指数
2
解决办法
3万
查看次数

c#对List进行排序<KeyValuePair <int,string >>

在C#中,我想List<KeyValuePair<int, string>>按列表中每个字符串的长度排序.在Psuedo-Java中,这将是一个匿名的,看起来像:

  Collections.Sort(someList, new Comparator<KeyValuePair<int, string>>( {
      public int compare(KeyValuePair<int, string> s1, KeyValuePair<int, string> s2)
      {
          return (s1.Value.Length > s2.Value.Length) ? 1 : 0;    //specify my sorting criteria here
      }
    });
Run Code Online (Sandbox Code Playgroud)
  1. 我如何获得上述功能?

c# sorting compare list keyvaluepair

15
推荐指数
2
解决办法
3万
查看次数

C#从List <KeyValuePair <string,string>中获取键和值

给出一个清单:

    private List<KeyValuePair<string, string>> KV_List = new List<KeyValuePair<string, string>>();
    void initList()
    {
        KV_List.Add(new KeyValuePair<string, string>("qwer", "asdf"));
        KV_List.Add(new KeyValuePair<string, string>("qwer", "ghjk"));
        KV_List.Add(new KeyValuePair<string, string>("zxcv", "asdf"));
        KV_List.Add(new KeyValuePair<string, string>("hjkl", "uiop"));
    }
Run Code Online (Sandbox Code Playgroud)

(注意:"qwer"键有多个值,值"asdf"有多个键.)

1)有没有更好的方法来返回所有键的列表,而不仅仅是在KeyValuePair列表上执行foreach?

2)同样,有没有比使用foreach更好的方法返回给定键的所有值列表?

3)然后,如何返回给定值的键列表?

谢谢...

c# list keyvaluepair

13
推荐指数
3
解决办法
7万
查看次数

在javascript中为一个对象数组添加一个键值对?

如果我有这样的数组:

var myarray = [];

myarray.push({
    "Name": 'Adam',
    "Age": 33
});

myarray.push({
    "Name": 'Emily',
    "Age": 32
});
Run Code Online (Sandbox Code Playgroud)

这给了我一个数组,我可以拿出值myarray[0].Name给我"亚当"的值.

然而,这种阵列建成后,我怎么能添加一个"地址"字段与"地方街"的一个值在位置数组[0],让自己在该对象领域在零位置现在Name,AgeAddress用相应的价值?

我想splice()某想但是找不到使用对象的例子,只是简单数组的例子.

javascript arrays object keyvaluepair

12
推荐指数
2
解决办法
7万
查看次数

KeyValuePair协方差

在这个例子中是否有更好的模仿协方差的方法?理想情况下我想做:

private IDictionary<string, ICollection<string>> foos;

public IEnumerable<KeyValuePair<string, IEnumerable<string>> Foos
{
    get
    {
        return foos;
    }
}
Run Code Online (Sandbox Code Playgroud)

KeyValuePair<TKey, TValue>不是协变的.

相反,我必须这样做:

public IEnumerable<KeyValuePair<string, IEnumerable<string>>> Foos
{
    get
    {
        return foos.Select(x => 
            new KeyValuePair<string, IEnumerable<string>>(x.Key, x.Value));
    }
}
Run Code Online (Sandbox Code Playgroud)

有更好/更清洁的方式吗?

c# covariance c#-4.0 keyvaluepair

10
推荐指数
1
解决办法
892
查看次数

Python:创建后冻结dict键

是否有可能在创建后"冻结"python dict,以便无法为其添加新密钥?只能更改现有的键值.

如果没有,您如何知道何时更改现有的键值对,以及何时添加新的键值对?

python dictionary immutability keyvaluepair

9
推荐指数
1
解决办法
1931
查看次数

将Linq查询返回到KeyValuePair的列表中

我正在将我的图表应用程序从预设数据转换为使用数据库.

以前我用过这个:

var data = new Dictionary<string, double>();            

switch (graphselected)
{        
case "1":
    data = new Dictionary<string, double>
    {
        {"Dave", 10.023f},
        {"James", 20.020f},
        {"Neil", 19.203f},
        {"Andrew", 4.039f},
        {"Steve", 5.343f}
    };
    break;
case "2":
    data = new Dictionary<string, double>
    {
        {"Dog", 10.023f},
        {"Cat", 20.020f},
        {"Owl", 19.203f},
        {"Rat", 16.039f},
        {"Bat", 27.343f}
    };
    break;
//etc...
}

// Add each item in data in a foreach loop
foreach (var item in list)
{
    // Adjust the Chart Series values used for X + Y …
Run Code Online (Sandbox Code Playgroud)

c# linq keyvaluepair

8
推荐指数
1
解决办法
2万
查看次数