private void InsertForSum(int coef, int deg1, int deg2, int deg3) { Syllable newSyllable = new Syllable(coef, deg1, deg2, deg3); if (syllables.IsEmpty()) { syllables.AddFirst(newSyllable); } else { Syllable previosSyllable = null; var i = 0; foreach (var syllable in syllables) { if (syllable.GetSumPowers() < newSyllable.GetSumPowers()) { if (previosSyllable == null) { syllables.AddFirst(newSyllable); } else { syllables.AddByIndex(i, newSyllable); } break; } else if (syllable.GetSumPowers() >= newSyllable.GetSumPowers() && syllables.Count == i - 1) { syllables.AddLast(newSyllable); break; } else { if (syllable.CheckForSum(newSyllable)) { syllable.Coefficient += coef; if (syllable.Coefficient == 0) { syllables.Remove(syllable); i--; } break; } else { if (newSyllable.CompareTo(syllable) < 0) { syllables.AddByIndex(i, newSyllable); break; } } } i++; previosSyllable = syllable; } } }
//делает из строки массив коэффицентов и степеней! списка полинома, а потом переделывает этот массив в другой, где в ячейке находится элемент класса Syllable private Syllable[] Convert(string str) { string[] array = str.Split(' '); int[] intArr = new int[array.Length]; for (int i = 0; i < array.Length; i++) { intArr[i] = int.Parse(array[i]); } int c = 0; var list = new Syllable[intArr.Length / 4]; while (true) { if (c >= intArr.Length / 4) { break; } list[c] = (new Syllable(intArr[c * 4], intArr[4 * c + 1], intArr[4 * c + 2], intArr[4 * c + 3])); c++; } return(list); }