private DomainValue EvaluateNode(ListDomainExpressionNode theExpressionNode)
        {
            var valueList = new List <string>();

            foreach (var itemNameNode in theExpressionNode.Items.Values)
            {
                valueList.Add(itemNameNode.Value);
            }
            return(new ListDomainValue(valueList, theExpressionNode));
        }
 /// <summary>
 /// Initialize a domain range with a list of values.
 /// </summary>
 /// <param name="theList">List of values from the domain list.</param>
 /// <param name="theNode">Domain list node.</param>
 internal ListDomainValue(IEnumerable <string> theList, ListDomainExpressionNode theNode)
     : base()
 {
     this.values         = new List <string>(theList);
     this.expressionNode = theNode;
 }
        /// <summary>
        /// Evaluate a list domain expression.
        /// </summary>
        /// <param name="theExpressionNode">List domain expression node.</param>
        /// <returns>Domain value.</returns>
        internal static DomainValue Evaluate(ListDomainExpressionNode theExpressionNode)
        {
            var evaluator = new DomainExpressionEvaluator();

            return(evaluator.EvaluateNode(theExpressionNode));
        }