public Предложение азобратьТекст(string Текст) { var предложение = new Предложение(); object заполняемыйШаблон = null; for (int i = 0; i < Текст.Length; i++) { var символ = Текст[i]; if (символ >= 'а' && символ <= 'я') { if (заполняемыйШаблон == null) { заполняемыйШаблон = new Слово(); ((Слово)заполняемыйШаблон).Список.Add(символ); } else if (заполняемыйШаблон is Слово) { ((Слово)заполняемыйШаблон).Список.Add(символ); } else //заполняемыйшаблон не Слово, закончилось заполнение пробела { предложение.СписокОбъектов.Add(заполняемыйШаблон); заполняемыйШаблон = new Слово(); ((Слово)заполняемыйШаблон).Список.Add(символ); } } else if (символ == ' ') { if (заполняемыйШаблон == null) { заполняемыйШаблон = new Пробел(); ((Пробел)заполняемыйШаблон).Список.Add(символ); } else { if (заполняемыйШаблон is Пробел) //продолжить заполнение пробела { ((Пробел)заполняемыйШаблон).Список.Add(символ); } else //заполняемый шаблон не пробел, { предложение.СписокОбъектов.Add(заполняемыйШаблон); заполняемыйШаблон = new Слово(); ((Слово)заполняемыйШаблон).Список.Add(символ); } } } else //другие символы пропуск { заполняемыйШаблон = null; } } return(предложение); }
public override bool ПопробоватьДобавить(object объект) { if (объект == null) { if (Текущий == null) { return(false); } ИсходящийШаблон.ПопробоватьДобавить(Текущий); Текущий = null; return(true); } var ассСимвол = (Символ2)объект; ассСимвол.АссоциированныеОбъекты.Add(this); if (Текущий == null) { Текущий = new Слово(); } Текущий.Список.Add(объект); return(true); }