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