Iteration through GroupCollection in C#
c#, collections, loops
Solution
(See this question: Regex: get the name of captured groups in C#)
You can use GetGroupNames:
Regex reg_gameinfo = new Regex(@"PokerStars Game #(?<HID>[0-9]+):\s+(?:HORSE)? \(?(?<GAME>Hold'em|Razz|7 Card Stud|Omaha|Omaha Hi/Lo|Badugi) (?<LIMIT>No Limit|Limit|Pot Limit),? \(?(?<CURRENCYSIGN>\$|)?(?<SB>[.0-9]+)/\$?(?<BB>[.0-9]+) (?<CURRENCY>.*)\) - (?<DATETIME>.*$)", RegexOptions.Multiline);
Match matchresults = reg_gameinfo.Match(rawtext);
Dictionary<string,string> gameinfo = new Dictionary<string,string>();
if (matchresults.Success)
foreach(string groupName in reg_gameinfo.GetGroupNames())
gameinfo.Add(groupName, matchresults.Groups[groupName].Value);
Problem
I'm currently trying to use regular expressions in C#: ``` Regex reg_gameinfo = new Regex(@"PokerStars Game #(?<HID>[0-9]+):\s+(?:HORSE)? \(?(?<GAME>Hold'em|Razz|7 Card Stud|Omaha|Omaha Hi/Lo|Badugi) (?<LIMIT>No Limit|Limit|Pot Limit),? \(?(?<CURRENCYSIGN>\$|)?(?<SB>[.0-9]+)/\$?(?<BB>[.0-9]+) (?<CURRENCY>.*)\) - (?<DATETIME>.*$)", RegexOptions.Multiline); Match matchresults = reg_gameinfo.Match(rawtext); Dictionary<string,string> gameinfo = new Dictionary<string,string>(); if (matchresults.Success) { gameinfo.Add("HID", matchresults.Groups["HID"].Value); gameinfo.Add("GAME", matchresults.Groups["GAME"].Value); ... } ``` Can I iterate through the `matchresult.Groups` GroupCollection and add the key-value pairs to my `gameinfo` dictionary?