标签: key-value

为什么我不能将KeyValuePair <TKey,TValue>与默认值进行比较

在.Net 2.5中,我通常可以在值与其类型默认值之间获得相等比较(==)

if (myString == default(string))
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在默认KeyValuePair和KeyValuePair上运行相等比较时,我得到以下异常

代码示例(来自预扩展方法,proto-lambda静态ListUtilities类:))

public static TKey 
        FirstKeyOrDefault<TKey, TValue>(Dictionary<TKey, TValue> lookups, 
                   Predicate<KeyValuePair<TKey, TValue>> predicate)
{
    KeyValuePair<TKey, TValue> pair = FirstOrDefault(lookups, predicate);

    return pair == default(KeyValuePair<TKey, TValue>) ? 
                   default(TKey) : pair.Key;
}
Run Code Online (Sandbox Code Playgroud)

例外:

运算符'=='不能应用于'System.Collections.Generic.KeyValuePair <string,object>'和'System.Collections.Generic.KeyValuePair <string,object>'类型的操作数

是因为,作为结构,KeyValuePair不可为空吗?如果是这种情况,为什么,实际上,默认是为了处理不可为空的类型?

编辑

为了记录,我选择了@Chris Hannon作为选择的答案,因为他给了我正在寻找的东西,最优雅的选择,以及简洁的解释,但我鼓励阅读@Dasuraga以获得非常全面的解释,为什么这是案子

.net c# key-value

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

根据值获取C#字典中键/值对的索引

我想知道是否存在一些获取特定值索引的属性或方法.

我发现字典的Contains()方法如果传入的值存在则返回true,所以这个方法几乎实现了我需要的东西.

我知道我可以循环遍历所有的值对并检查条件,但我问,因为可能有一种优化的方法.

c# dictionary key-value

35
推荐指数
4
解决办法
10万
查看次数

如何使用Kubernetes yaml文件设置动态值?

例如,部署yaml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: guestbook
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: guestbook
      spec:
        container:
          - name: guestbook
            image: {{Here want to read value from config file outside}}
Run Code Online (Sandbox Code Playgroud)

ConfigMapKubernetes 有一个功能,但它也将键/值写入yaml文件.有没有办法设置环境变量的关键?

templates yaml config key-value kubernetes

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

是否有经过商业验证的云存储/密钥=>价值数据库?(开源)

我一直在寻找云计算/存储解决方案很长一段时间(受Google Bigtable的启发).但我找不到一个易于使用,业务就绪的解决方案.

我正在搜索一个简单的,容错的,分布式的Key => Value DB,就像亚马逊的SimpleDB一样.

我见过这样的话:

  1. CouchDB项目:简单且分布式,容错的数据库.但它只能理解JSON.没有XML连接器等
  2. Eucalyptus:Nice Amazon EC2接口.开放标准和XML.但分布较少,容错性较差?XEN/VMWare问题也有很多打开的门票.
  3. Cloudstore/Kosmosfs:分布式,容错的fs.但配置起来很困难.有没有java连接器?
  4. Apache Hadoop:很好的系统,它存储数据的能力要强得多.使用自己的Hadoop分布式文件系统,并在具有2000个节点的集群上进行测试.
  5. *Amazon SimpleDB:无法找到开源替代品!对于大量数据来说,这是一个不错但价格昂贵的系统.你沉迷于亚马逊.

还有其他更好的解决方案吗?哪一个最好选择?哪一个提供最小量的SOF(Singe Point of Failure)?

cloud open-source amazon-ec2 key-value

34
推荐指数
2
解决办法
5161
查看次数

C#参数中的键值对

我正在寻找一种方法来获得如下功能:

myFunction({"Key", value}, {"Key2", value});
Run Code Online (Sandbox Code Playgroud)

我确定有一些匿名类型的东西很容易,但我没有看到它.

我能想到的唯一解决方案是使用"params KeyValuePair [] pairs"参数,但最终会出现类似于:

myFunction(new KeyValuePair<String, object>("Key", value),
           new KeyValuePair<String, object>("Key2", value));
Run Code Online (Sandbox Code Playgroud)

诚然,这更加丑陋.

编辑:

为了澄清,我正在写一个"消息"类来传递两个不同的系统.它包含指定消息类型的ushort,以及与消息关联的"Data"的字符串到对象的字典.我希望能够在构造函数中传递所有这些信息,所以我能够这样做:

Agent.SendMessage(新消息(MessageTypes.SomethingHappened,"A",x,"B",y,"C",z)); 或类似的语法.

c# parameters key-value

32
推荐指数
4
解决办法
5万
查看次数

iPhone - 如何检测NSUserDefaults standardUserDefaults中是否存在密钥

使用NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];,

我使用调用BOOL boolFromPrefs = [defaults boolForKey:@"theBoolKey"];来获取保存的BOOL值.

如果未找到密钥,则返回NO(boolForKey的默认行为).
但是...... NO可以是一个保存的设置.同样的事情intForKey

那么在尝试获取其值之前,如何测试密钥是否存在?

iphone cocoa-touch preferences key-value nsuserdefaults

32
推荐指数
4
解决办法
2万
查看次数

如何防止向javascript数组添加重复键

我找到了很多相关的问题,并且回答是关于...在循环中并使用hasOwnProperty,但我没有做任何正常工作.我想要做的就是检查数组中是否存在键,如果没有,则添加它.

我从一个空数组开始,然后在用jQuery擦除页面时添加键.

最初,我希望像下面这样简单的东西可以工作:(使用通用名称)

if (!array[key])
   array[key] = value;
Run Code Online (Sandbox Code Playgroud)

不行.跟着它:

for (var in array) {
   if (!array.hasOwnProperty(var))
      array[key] = value;
}
Run Code Online (Sandbox Code Playgroud)

还尝试过:

if (array.hasOwnProperty(key) == false)
   array[key] = value;
Run Code Online (Sandbox Code Playgroud)

这些都没有奏效.要么没有任何东西被推到阵列,要么我尝试的只不过array[key] = value是简单地宣称为什么这么简单如此难以做到.任何使这项工作的想法?

javascript arrays jquery duplicates key-value

32
推荐指数
4
解决办法
9万
查看次数

如何计算字符串中字符的频率?

我需要编写某种循环来计算字符串中每个字母的频率.
例如:"aasjjikkk"将计为2'a',1'',2'j',1'i',3'k'.最终像这样的id最终会出现在一个地图中,其中字符为键,计数为值.有什么好主意怎么做?

java string key-value

29
推荐指数
4
解决办法
10万
查看次数

Typescript数组的键值对声明

对以下声明感到困惑:

constructor(controls: {[key: string]: AbstractControl}, optionals?: {[key: string]: boolean}, validator?: ValidatorFn, asyncValidator?: AsyncValidatorFn)
Run Code Online (Sandbox Code Playgroud)

控件的类型是什么(第一个参数)?它是一个对象,它是一个键值对数组,其中键是字符串,值是AbstractControl?谢谢!

arrays key-value typescript

29
推荐指数
1
解决办法
6万
查看次数

无法将keyValuePair直接添加到Dictionary

我想一个添加KeyValuePair<T,U>Dictionary<T, U>我没能做到.我必须分别传递密钥和值,这必然意味着Add方法必须创建一个新的KeyValuePair对象来插入,这不是非常有效.我不敢相信Add(KeyValuePair<T, U>)Add方法没有重载.任何人都可以提出这种明显疏忽的可能原因吗?

c# dictionary key-value generic-collections

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