Dictionary中扩展方法的一个应用

  前段时间做了一个项目,碰到一个问题,从记录的日志来看,老是出现“The given key was not present in the dictionary.”大意就是key不在对应的Dictionary中,然后程序就挂掉了。但是一气之下写了无数个try catch,有点心虚,不过好在看到《C#高级编程 第七版》上关于异常那章内容上说的,C#的try-catch 和C++的不一样,基本上不会对效率产生什么影响,心理总算好过了一点。

  但那个恶心的问题依旧在,因为始终不知道到底是哪个key出错了,因为当时一直从索引的角度出发,一对"[ ]",貌似不能实现什么。今天在看一段代码的时候发现了Dictionary的TryGetValue()这个方法,看了一下msdn上的说明,说他是ContainsKey()和"[ ]"的一个combine,msdn推荐如果代码中频繁用到由key取value的操作,推荐使用TryGetValue这个方法,因为他是O(1)的时间复杂度(大概是这个意思)。呵呵。还不错。然后忽然明白,其实一开始的key也就找到解决方案了。就是写个扩展方法。

  贴下代码,写的不好,还望大神完善。

首先是定义这个扩展方法(具体知识google或者百度,或者msdn);

public static class MyClass
    {
        public static string TryGetValueEx(this Dictionary<string, string> dic, string key)
        {
            
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值