static void Main(string[] args) { Console.Write("Enter Input:"); string input = Console.ReadLine(); string[] splitInput = input.Split('='); int index = char.IsLetter(splitInput[0].Replace(" ", "")[0]) ? 1 : 0; string sideWithEquation = splitInput[index]; if (sideWithEquation.StartsWith('-') || sideWithEquation.StartsWith('+')) { sideWithEquation = "0" + sideWithEquation; } if (sideWithEquation.StartsWith('*') || sideWithEquation.StartsWith('/')) { sideWithEquation = sideWithEquation.Remove(0, 1); } sideWithEquation = sideWithEquation.Replace(" ", ""); result = EnumerableMethod.SplitAndKeep(sideWithEquation, pattern); listOfStr.AddRange(result); //Compute right hand side string[] equation = listOfStr.ToArray(); //compute for * and / for (int i = 0; i < equation.Length; i++) { string item = equation[i]; double num = 0; switch (item) { case "*": num = Convert.ToDouble(equation[i - 1]) * Convert.ToDouble(equation[i + 1]); break; case "/": num = Convert.ToDouble(equation[i - 1]) / Convert.ToDouble(equation[i + 1]); break; } if (num > 0) { equation[i - 1] = ""; equation[i] = ""; equation[i + 1] = num.ToString(); } } //Now compute for + and- equation = string.Join(" ", equation).Split(' ', StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < equation.Length; i++) { string item = equation[i]; double num = 0; switch (item) { case "+": num = Convert.ToDouble(equation[i - 1]) + Convert.ToDouble(equation[i + 1]); break; case "-": num = Convert.ToDouble(equation[i - 1]) - Convert.ToDouble(equation[i + 1]); break; } if (num > 0 || num < 0) { equation[i - 1] = ""; equation[i] = ""; equation[i + 1] = num.ToString(); } } string total = string.Join("", equation); //display what x is try { // your code total = string.Format("{0:N2}", Convert.ToDouble(total)); if (!(Fraction.IsWholeNumber(Convert.ToDouble(total)))) { number = Fraction.DecimalToFraction(Convert.ToDouble(total)); } else { number = total; } Console.WriteLine($"Output = {number}"); Console.ReadKey(); } catch (Exception e) { Console.WriteLine($"Error = {e.Message }"); Console.Read(); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") { Console.WriteLine("\n"); // Friendly linespacing. } }
public LinkedField(string target, ExpressionType type = (ExpressionType)EQUALS, EnumerableMethod enumMethod = 0) { TargetField = target; Type = type; switch (enumMethod) { case EnumerableMethod.FirstOrDefault: EnumMethod = "FirstOrDefault"; break; case EnumerableMethod.None: EnumMethod = "!Any"; break; default: case EnumerableMethod.Any: EnumMethod = "Any"; break; } }