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).Containsmethod は O(1) であるため、要素が存在するかどうかの確認は迅速に行われます。

于 2012-04-05T16:13:47.873 に答える