public void Listi() { Vortoj?.ForEach(v => { Console.WriteLine( $"{v.PlenaVorto} - {Sintaksanalizilo.infinitivoNomoDe(v.PlenaVorto).Value} - {v.Signifo}"); }); }
public VortoRespondo?Vorto(string vorto) { var respondo = Indekso.GetValueOrDefault(vorto, null); if (respondo == null) { return(null); } var vorttipo = Sintaksanalizilo.infinitivoNomoDe(vorto).Value; var silaboj = Malinflektado.dividiKunFinaĵo(vorto); string?sintakso = null; if (respondo is Modifanto modifanto) { var sb = new StringBuilder(respondo.Vorto.Length); sb.AppendFormat("<v> {0}", modifanto.Vorto); sb.AppendJoin("", modifanto.AldonaĵajTipoj.Select((_, i) => $" <x<sub>{i}</sub>>")); sintakso = sb.ToString(); } if (silaboj.IsError) { throw new Exception(silaboj.ErrorValue); } var inflekcioj = Malinflektado.iujInflekciojDe(vorto); return(new VortoRespondo(respondo.Vorto) { Noto = respondo.Noto != null ? string.Format(respondo.Noto, "a<sub>1</sub>", "a<sub>2</sub>", "a<sub>3</sub>") : null, Radikoj = respondo.Radikoj.ToList(), Signifo = respondo.Signifo, Vorttipo = vorttipo, Silaboj = silaboj.ResultValue, Gloso = respondo.Gloso, InflektitajFormoj = FSharpOption <FSharpMap <Vorttipo.Inflekcio, string> > .get_IsSome(inflekcioj) ? inflekcioj.Value.Select(p => (p.Key.ToString(), p.Value)) .ToDictionary(p => p.Item1, p => p.Value) : null, Ujoj = respondo is Verbo verbo ? verbo.ArgumentajNotoj : null, FrazaSignifo = respondo is Verbo verbo2 ? string.Format(verbo2.FrazaSignifo, "a<sub>1</sub>", "a<sub>2</sub>", "a<sub>3</sub>") : null, Sintakso = sintakso, ModifeblajVorttipoj = respondo is Modifanto m?m.ModifeblajTipoj.Select(PriskribiVorttipanMallongaĵon) : null, AldonaĵajInflekcioj = respondo is Modifanto m2?m2.AldonaĵajTipoj.Select(PriskribiVorttipanMallongaĵon) : null, });