private string[] ToPinyinDisV(string str) { Entity.PinyinDictionary dict = new Entity.PinyinDictionary(); List <string> wordList = dict.Dictionary.Keys.ToList(); List <string> wordsLeft = Segmentation.SegMmDouble(str, ref wordList); if (wordsLeft == null) { MessageBox.Show(@"意外的错误,分词失败。"); return(null); } var pinyinList = new List <string>(); foreach (string word in wordsLeft) { if (word.Length == 1 && !dict.Dictionary.ContainsKey(word)) { string pinyin; if (nPinyinRBox.Checked) { pinyin = ToPinyin.ByNPingyin(word.ToCharArray()[0]); } else { pinyin = ToPinyin.ByMsIntPinyin(word.ToCharArray()[0]); } pinyinList.Add(pinyin); } else { pinyinList.AddRange(Regex.Replace(dict.Dictionary[word].ToLower(), @"\d", "").Split(' ')); } } return(pinyinList.ToArray()); }