public static int FindSameUnit(Value v, string value) { for (var i = 0; i < v.Unit.Count; i++) { if (v.Unit[i].Value == value) return i; } return -1; }
public static Value CheckValueInTheSi(Value v) { if (Program.LSi.Any(t => t.Main == v.Unit))//идем по всей таблице си и сравниваем наше значение с главными { return v; } foreach (var si in Program.LSi) { foreach (var child in si.Сhildren.Where(child => child.Value == v.Unit[0].Value)) { v.Unit = si.Main; v._value = v._value * Math.Pow(child.ConvertValue, v.Unit[0].Degree); return v; } } return v; }
public static Value FindFormula(Value v) { foreach (var t1 in Program.LOp)//идем по всем формулам { if (t1.Lu.Count != v.Unit.Count) continue; //если количество переменных совпало var count = v.Unit.Count(t => t1.Lu.Contains(t));//ищем наши переменные в формуле if (count != v.Unit.Count) continue; //если все окей v.Unit.Clear(); v.Unit.Add(t1.Result); break; } return v; }