Skip to content

Getting Started

Coding Seb edited this page Jan 22, 2021 · 10 revisions

Installation

Install the following nuget package :

Install-Package CodingSeb.ExpressionEvaluator 

See on Nuget.org

or copy the CodingSeb.ExpressionEvaluator/ExpressionEvaluator.cs file in your project :

Basic C# usage

Simple expressions

using CodingSeb.ExpressionEvaluator; //... string expression; //... ExpressionEvaluator evaluator = new ExpressionEvaluator(); Console.WriteLine(expression); Console.WriteLine(evaluator.Evaluate(expression));

Results with some expressions :
Live examples here

1+1 2 2 + 3 * 2 8 (2 + 3) * 2 10 Pi 3.14159265358979 Pow(2, 4) 16 Sqrt(2) / 3 0.471404520791032 "Hello" + " " + "World" Hello World Max(1+1, 2+3, 2*6, Pow(2, 3)) 12 Array(2, $"Test { 2 + 2 } U", true).Length 3 Array(2, $"Test { 2 + 2 } U", true)[1] Test 4 U Array(2, $"Test { 2 + 2 } U", true)[2] ? "yes" : "no" yes false ? "yes" : "no" no "Hello\nWorld" Hello World @"Hello\nWorld" Hello\nWorld Regex.Match("Test 34 Hello/-World", @"\d+").Value 34 int.Parse(Regex.Match("Test 34 Hello/-World", @"\d+").Value) + 2 36 3 / 2 1 3d / 2d 1.5 (float)3 / (float)2 1.5 // use new as a function new(Random).Next(1,10) 4 // or a random value between 1 and 9 // or as a keyword new Regex(@"\w*[n]\w*").Match("Which word contains the desired letter ?").Value contains List("Test", "Hello", "Bye", "How are you?").Find(t => t.Length < 4) Bye new List<string>(){ "Test", "Hello", "Bye", "How are you?" }.Find(t => t.Length < 4); Bye Enumerable.Range(1,4).Cast().Sum(x =>(int)x) 10 Enumerable.Repeat(3,6).Cast().ToList().Count 6 Enumerable.Repeat(3,6).Cast().ToList()[4] 3 ((x, y) => x * y)(4, 2) 8 "Hello"[2] == 'l' true "Hello,Test,What".Split(ArrayOfType(typeof(char), ',')).Length 3 "Hello,Test,What".Split(ArrayOfType(typeof(char), ','))[0] Hello "Hello,Test,What".Split(ArrayOfType(typeof(char), ','))[1] Test "Hello,Test,What".Split(ArrayOfType(typeof(char), ','))[2] What "Hello,Test,What".Split(new char[] {','}).Length 3 "Hello,Test,What".Split(new char[] {','})[0] Hello "Hello,Test,What".Split(new char[] {','})[1] Test "Hello,Test,What".Split(new char[] {','})[2] What new System.Xml.XmlDocument().FluidLoadXml("<root><element id='MyElement'>Xml Content</element></root>").SelectSingleNode("//element[@id='MyElement']").InnerXml Xml Content // if System.Net Assembly is referenced in your project. $"https://www.google.ch/search?q={System.Net.WebUtility.UrlEncode("request with url encode() ?")}" https://www.google.ch/search?q=request+with+url+encode()+%3F 

Small scripts

using CodingSeb.ExpressionEvaluator; //... string script; //... ExpressionEvaluator evaluator = new ExpressionEvaluator(); Console.WriteLine("--------------------------------------------"); Console.WriteLine(script); Console.WriteLine("---------------- Result --------------------"); Console.WriteLine(evaluator.ScriptEvaluate(script));

Results with some scripts :
Live examples here

-------------------------------------------- x = 0; result = ""; while(x < 5) { result += $"{x},"; x++; } result.Remove(result.Length - 1); ---------------- Result -------------------- 0,1,2,3,4 -------------------------------------------- result = ""; for(x = 0; x < 5;x++) { result += $"{x},"; } result.Remove(result.Length - 1); ---------------- Result -------------------- 0,1,2,3,4 -------------------------------------------- x = 0; y = 1; result = 0; if(y != 0) { return 1; } else if(x == 0) { return 2; } else if(x < 0) { return 3; } else { return 4; } ---------------- Result -------------------- 1 -------------------------------------------- x = 0; y = 0; result = 0; if(y != 0) { return 1; } else if(x == 0) { return 2; } else if(x < 0) { return 3; } else { return 4; } ---------------- Result -------------------- 2 -------------------------------------------- x = 5; y = 0; result = 0; if(y != 0) { return 1; } else if(x == 0) { return 2; } else if(x < 0) { return 3; } else { return 4; } ---------------- Result -------------------- 4 -------------------------------------------- Add = (x, y) => x + y; return Add(3, 4); ---------------- Result -------------------- 7 -------------------------------------------- Add = (x, y) => { var result = x + y; return result; }; return Add(3, 4); ---------------- Result -------------------- 7 

To see more scripts examples see scripts uses for tests in sub directories CodingSeb.ExpressionEvaluator.Tests/Resources

Table Of Content

Clone this wiki locally