【问题标题】:testing for one item in dictionary<k,v>测试字典中的一项<k,v>
【发布时间】:2010-04-20 14:32:59
【问题描述】:

我正在使用 VS 2005 fx2.0。

如果我知道我的字典只包含 1 项,我该如何找到它?

谢谢, 棒

【问题讨论】:

    标签: c# .net visual-studio-2005 dictionary


    【解决方案1】:

    唯一的方法(使用框架 2.0)是使用 foreach 对其进行迭代。

    或者制作一个方法来做到这一点,比如:

    public static T GetFirstElementOrDefault<T>(IEnumerable<T> values)
    {
      T value = default(T);
      foreach(T val in values)
      {
        value = val;
        break;
      }
      return value;
    }
    

    它适用于所有 IEnumerable,在你的情况下 T 是 KeyValuePair

    【讨论】:

      【解决方案2】:

      确保您拥有using System.Linq;。下面的命令会得到字典的键值对

      var item = Dictionary<k,v>.Single();
      var key = item.Key;
      var value =item.Value; 
      

      【讨论】:

      • 问题是关于VS2005的。要使用 linq,您需要 VS2008 和 fx3.5
      【解决方案3】:

      Graviton 是正确的,但为了更安全一点(如果有多个项目),您可以这样做:

      yourDictionary.First();
      

      为了甚至更安全,你可以这样做(如果字典也是空的):

      yourDictionary.FirstOrDefault();
      

      【讨论】:

        【解决方案4】:

        只需遍历 Dictionary 的所有元素(在这种情况下只有一个)

        foreach (KeyValuePair<v, k> keyValue in dictionary)
                    {
        
                    }
        

        【讨论】:

          【解决方案5】:
          dictionary.SingleOrDefault();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-12-20
            • 1970-01-01
            • 1970-01-01
            • 2017-06-07
            • 2011-04-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多