我正在尝试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
在无序地图中使用密钥?
我正在尝试从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,但这似乎重新发明了轮子.
我有一个包含以下元素的列表:
{[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)?
我是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#中,我想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)
给出一个清单:
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)然后,如何返回给定值的键列表?
谢谢...
如果我有这样的数组:
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
,Age
和Address
用相应的价值?
我想splice()
某想但是找不到使用对象的例子,只是简单数组的例子.
在这个例子中是否有更好的模仿协方差的方法?理想情况下我想做:
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)
有更好/更清洁的方式吗?
是否有可能在创建后"冻结"python dict,以便无法为其添加新密钥?只能更改现有的键值.
如果没有,您如何知道何时更改现有的键值对,以及何时添加新的键值对?
我正在将我的图表应用程序从预设数据转换为使用数据库.
以前我用过这个:
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) keyvaluepair ×10
c# ×7
arrays ×2
dictionary ×2
linq ×2
list ×2
c#-4.0 ×1
c++ ×1
compare ×1
covariance ×1
immutability ×1
javascript ×1
json ×1
object ×1
projection ×1
python ×1
sorting ×1