Salut,
L'erreur vient du fait que tu ne peux pas transformer les chaines "+" et "-" pour les utiliser en temps qu'opérateurs de ton équation et retourner le double que tu attends.
A la place tu peux faire quelque chose comme cela:
public double ParseEquation(string equation)
{
string[] monEquation = equation.Split("+-".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
string operateurs = @"(?<Operator>[+|-])";
System.Text.RegularExpressions.MatchCollection operateursCollection = System.Text.RegularExpressions.Regex.Matches(equation, operateurs, System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace);
double resultat = Convert.ToDouble(monEquation[0]);
for (int i = 0; i < monEquation.Length - 1; i++)
{
resultat = CalculerOperateur(resultat, Convert.ToDouble(monEquation[i + 1]), operateursCollection[i].Value);
}
return resultat;
}
private double CalculerOperateur(double nombre1, double nombre2, string op)
{
if (op == "-")
{
return nombre1 - nombre2;
}
else if (op == "+")
{
return nombre1 + nombre2;
}
else
{
// Gérer l'erreur d'opérateur
}
}