public FormulaExpression(params IExpression[] expressions) { var result = new FormulaExpression(); foreach (var item in expressions) { result = result.Add(item); } this.Value = result.Value; this.Terms = result.Terms; this.Others = result.Others; }
public FormulaExpression Add(FormulaExpression value) { var result = this; result = result.Add(value.Value); result = result.Add(value.Terms); var other = result.Others.ToList(); other.AddRange(value.Others); result = new FormulaExpression(result.Value, result.Terms, other.ToArray()); return(result); }
public IExpression MemberSelect(Func <IExpression, IExpression> func) { var c = GetMembers().Select(a => func(a)).ToArray(); var f = new FormulaExpression(c); var single = f.GetSingleOrDefault(); if (single == null) { return(f); } else { return(single); } }