有一个字典对象加载了以下键值:119 189a 189b 189c 197 201a 201b
在大多数情况下,生活是美好的,所有个人的关键价值观都是需要/独特的。但在某些情况下,后面带有字母的键(即...189a、189b、189c)都表示相同的意思(即...189)。所以我需要一种方法来查看键值是否仅存在于键的第一部分(如 containskey 方法),然后返回 true。
关于如何做到这一点的任何想法?
有一个字典对象加载了以下键值:119 189a 189b 189c 197 201a 201b
在大多数情况下,生活是美好的,所有个人的关键价值观都是需要/独特的。但在某些情况下,后面带有字母的键(即...189a、189b、189c)都表示相同的意思(即...189)。所以我需要一种方法来查看键值是否仅存在于键的第一部分(如 containskey 方法),然后返回 true。
关于如何做到这一点的任何想法?
像这样的东西?
dictionary.Keys.Any(Function(key) key.StartsWith("189"))
或者您可以使用正则表达式进行更多查找粒度控制:
dictionary.Keys.Any(Function(key) Regex.IsMatch(key, "^189[^\d]?")
由于您有时只需要忽略后缀字母,为了获得最大效率,我建议使用额外的HashSet(T)来存储数字部分。当您从字典中添加/删除元素时,还要从HashSet(T)
. HashSet(T).Contains
方法是 O(1),因此检查元素是否存在将很快。