.NET Core 3.0以降のGroupCollectionは、IReadOnlyDictionary<string, Group>インターフェイスも実装しています。 これにしたがって、GroupCollectionをディクショナリとして扱えるほか、グループ・名前付きグループをKeyValuePair<string, Group>として取得することができます。
上記の結果にも現れているように、IReadOnlyDictionary<string, Group>を介したアクセスの場合、名前なし・名前付きに関わらずグループ化された部分が列挙されます。 また、名前なしのグループでは、グループ番号は文字列のキーとして列挙され、マッチ箇所全体を表すグループとして"0"
が常に含まれます。
このほかにもGroupCollectionでIReadOnlyDictionary由来のメソッド・プロパティとして、Keysプロパティ・ContainsKeyメソッド・TryGetValueメソッドを使うこともできます。 これらのメソッド・プロパティは、正規表現にマッチしたかどうかで返す値が変わります。 具体的には、ContainsKeyメソッド・TryGetValueメソッドは、正規表現にマッチした場合、かつ正規表現内に指定された名前・番号のグループを含む場合のみtrue
を返します。 つまり、特定の名前・番号のグループにマッチしたかどうか表す値を返すのではないため、逆にいえばこのメソッドの戻り値から正規表現全体がマッチしたかどうかを知ることができます。