当前位置: 代码迷 >> 综合 >> 集合(7)——Dictionary字典(2)——C#中的拼音检索
  详细解决方案

集合(7)——Dictionary字典(2)——C#中的拼音检索

热度:82   发布时间:2023-10-02 00:20:43.0

1、为什么要用拼音检索?坐席只能根据客户的语言进行判断,无法准确写对姓名。

2、Visual Studio International Pack

3、练习:根据文档学习使用方法。发下安装包自己探索。目标:输出一个汉字的拼音。

4、CHS:Simplifed Chinese,简体中文。CHT:Traditional Chinese :繁体中文。

5、两种实现方式:实时检索(速度慢);增加一个拼音字段(速度快,有冗余,必要的冗余是可以的)。

6、什么叫冗余:就是这个字段不是必要的。

7、提高运行速度:用冗余,Dictionary、索引、冗余列、Cache。

8、代码示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.International.Converters.PinYinConverter;namespace 拼音基础
{class Program{static void Main(string[] args){bool b = ChineseChar.IsHomophone('杨','羊');//判断两个字是否是同音字,同音返回true,不同音返回false。Console.Write(b);char[] chars = ChineseChar.GetChars("yang1");//找出同音字,读音为“yang”第一声调的所有汉字。foreach (char ch in chars){Console.WriteLine(ch);}bool b1 = ChineseChar.IsValidChar('a');//识别给出的字符串是否是一个有效的汉字字符。bool b2 = ChineseChar.IsValidChar('人');Console.WriteLine(b1);Console.WriteLine(b2);ChineseChar cc = new ChineseChar('乐');//获取该汉字的所有读音。//for (int i = 0; i < cc.Pinyins.Count; i++)for (int i = 0; i < cc.PinyinCount; i++){string pinyin = cc.Pinyins[i];Console.WriteLine(pinyin);}string s = Console.ReadLine();foreach (char ch in s){//判断是否是汉字if (ChineseChar.IsValidChar(ch)){ChineseChar cc = new ChineseChar(ch);Console.WriteLine(cc.Pinyins[0]);}else{Console.WriteLine(ch);}}Console.ReadKey();}}
}

附加一些C#知识点:

9、有尖括号<>的一般是泛型。

10、集合的遍历可用 for,也可以用 foreach 。用 for 遍历集合的时候,判断条件时可通过 Count 来判断,代码示例:

            ChineseChar cc = new ChineseChar('乐');for (int i = 0; i < cc.Pinyins.Count; i++){string pinyin = cc.Pinyins[i];Console.WriteLine(pinyin);}