首页 > 代码库 > 数据更新时的Key值判断(C#)

数据更新时的Key值判断(C#)

今天在工作过程中遇到下面的小问题,在更新数据时我想检查该数据Key是否已经存在,如果不存在则直接添加,否则则根据其他状态再判断是否需要更新。
这就需要首先获取已经存在的Key的集合。可以使用以下方法实现,比如Key值为一个字符串。
  1. List<string> 
  2. 检查方法为Contains,该方法会遍历List的中的某一个值进行比较。性能较差。
  3. Dictionary<string, bool> 
    记录键和值的相应关系, 如果只是想检查某个键值是否存在,可以使用TryGetValue
    Object item;
    if(dict.TryGetValue(name, out item) == false)
    {
        return false;
    }
    return true;
     
    更准确的方法应该是使用ContainsKey
    该方法根据Key的Hash值(Index)从对应数组中查找是否存在该值。
  4. HashSet<string>
    如果只是想用于检查某个键是否存在,使用HashSet应该是最佳选择
    HashSet<int> data = http://www.mamicode.com/new HashSet();
        for (int i = 0; i < 1000000; i++)
        {
            data.Add(rand.Next(50000000));
        }
        bool contains = data.Contains(1234567); // etc
 
综上,最适合该问题的解决方法应该是使用HashSet

数据更新时的Key值判断(C#)