0

有一个字典对象加载了以下键值:119 189a 189b 189c 197 201a 201b

在大多数情况下,生活是美好的,所有个人的关键价值观都是需要/独特的。但在某些情况下,后面带有字母的键(即...189a、189b、189c)都表示相同的意思(即...189)。所以我需要一种方法来查看键值是否仅存在于键的第一部分(如 containskey 方法),然后返回 true。
关于如何做到这一点的任何想法?

4

2 回答 2

1

像这样的东西?

dictionary.Keys.Any(Function(key) key.StartsWith("189"))

或者您可以使用正则表达式进行更多查找粒度控制:

dictionary.Keys.Any(Function(key) Regex.IsMatch(key, "^189[^\d]?")
于 2012-04-05T15:44:22.730 回答
1

由于您有时只需要忽略后缀字母,为了获得最大效率,我建议使用额外的HashSet(T)来存储数字部分。当您从字典中添加/删除元素时,还要从HashSet(T). HashSet(T).Contains方法是 O(1),因此检查元素是否存在将很快。

于 2012-04-05T16:13:47.873 回答