public List <List <string> > Resolve(string pinyinInput, bool isSimp, out List <string> pinyinSylls) { var res = new List <List <string> >(); List <CharReading> readings = isSimp ? readingsSimp : readingsTrad; string pinyinInputLo = pinyinInput.ToLowerInvariant(); var loSylls = pinyin.SplitSyllables(pinyinInputLo); string loSyllsConcat = ""; for (int i = 0; i < loSylls.Count; ++i) { if (i != 0) { loSyllsConcat += ' '; } loSyllsConcat += loSylls[i]; } foreach (var r in readings) { if (r.Pinyin == loSyllsConcat) { var itm = new List <string>(); itm.Add(r.Hanzi); res.Add(itm); } } pinyinSylls = getOrigSylls(pinyinInput, pinyinInputLo, loSylls); return(res); }
public List <List <string> > Resolve(string pinyinInput, out List <string> pinyinSylls) { var res = new List <List <string> >(); string pinyinInputLo = pinyinInput.ToLowerInvariant(); var loSylls = pinyin.SplitSyllables(pinyinInputLo); if (loSylls.Count == 1) { foreach (var r in charReadingsSimp.ReadingsList) { if (r.Pinyin == loSylls[0]) { var itm = new List <string>(); itm.Add(r.Hanzi); res.Add(itm); } } } else { res = polyDict.Lookup(loSylls, true); } pinyinSylls = getOrigSylls(pinyinInput, pinyinInputLo, loSylls); return(res); }