C#DictionaryValueOrNull/ValueorDefault目前在用varx=dict.ContainsKey(key)?dict[key]:defaultValue我想要一些方法来获取dictionary[key]对于非持久键返回null,所以我可以写类似varx=dict[key]??defaultValue;这也是linq查询等的一部分,所以我更喜欢单行解决方案。使用扩展方法:publicstaticclassMyHelper{publicstaticVGetValueOrDefault(thisIDictionarydic,Kkey,VdefaultVal=default(V)){Vret;boolfound=dic.TryGetValue(key,outret);如果(找到){返回ret;}返回默认值;}voidExample(){vardict=newDictionary();dict.GetValueOrDefault(42,"默认");您可以使用辅助方法:publicabstractclassMyHelper{publicstaticVGetValueOrDefault(Dictionarydic,Kkey){Vret;boolfound=dic.TryGetValue(key,outret);如果(找到){返回ret;}返回默认值(V);}}varx=MyHelper.GetValueOrDefault(dic,key);这是“终极”解决方案,因为它作为扩展方法实现,使用IDictionary接口,提供可选的默认值,并且编写简洁。publicstaticTVGetValueOrDefault(thisIDictionarydic,TKkey,TVdefaultVal=default(TV)){TVval;返回dic.TryGetValue(key,outval)?val:默认值;不只是TryGetValue(key,outvalue)你在找什么?引用MSDN:当此方法返回时,如果找到该键,则包含与指定键关联的值;否则,value参数类型的默认值。此参数在未初始化的情况下传递。来自http://msdn.microsoft.com/en-us/library/bb347013(v=vs.90).aspx以上是C#学习教程分享的全部内容:C#字典ValueOrNull/ValueorDefault,如果有用的话你和你需要了解更多关于C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
