public ConditionalCase(IContentPackValueProvider <T> valueProvider, TokenParser parser, IEnumerable <Dictionary <string, string> > conditionGroups)
            {
                this.ValueProvider = valueProvider;

                this.ConditionGroups = conditionGroups.Select(conditionGroup => {
                    Dictionary <IContentPackValueProvider <string>, string> parsedGroup = new Dictionary <IContentPackValueProvider <string>, string>();

                    // Parse each condition
                    foreach ((string tokenStr, string expectedValue) in conditionGroup)
                    {
                        parsedGroup.Add(parser.ParseToken(tokenStr), expectedValue);
                    }

                    return(parsedGroup);
                }).ToArray();
            }
 public UnconditionalCase(IContentPackValueProvider <T> valueProvider)
 {
     this.ValueProvider = valueProvider;
 }