C# 将一个字母表转换为另一个字母表

C# 将一个字母表转换为另一个字母表,c#,C#,我正在准备一个简单的字典项目,我已经准备好用两种语言进行搜索。但是,由于其中一个使用西里尔字母,我必须能够检查数据库,即使这个单词是用拉丁字母写的。我是什么意思 西里尔文:аа 拉丁语:kon 两者都应该给出单词的描述(在本例中为“马”)。我一直在考虑使用两个结构和两个字母来实现这一点……但不知何故,我还是无法实现。你们中的一些人有类似情况的经验吗?如果是-请分享建议或代码示例。也许这对您有帮助: 词典应该适合将西里尔字母映射为拉丁字母。我想你会跟着画他们 public class ISO9Tr

我正在准备一个简单的字典项目,我已经准备好用两种语言进行搜索。但是,由于其中一个使用西里尔字母,我必须能够检查数据库,即使这个单词是用拉丁字母写的。我是什么意思

西里尔文:аа

拉丁语:kon


两者都应该给出单词的描述(在本例中为“马”)。我一直在考虑使用两个结构和两个字母来实现这一点……但不知何故,我还是无法实现。你们中的一些人有类似情况的经验吗?如果是-请分享建议或代码示例。

也许这对您有帮助:


词典应该适合将西里尔字母映射为拉丁字母。我想你会跟着画他们

public class ISO9TransliterationProvider {
    private readonly Dictionary<Char, Char> charMapping = new Dictionary<char,char>() {
        { 'А', 'A' }, 
        { 'Б', 'B' } 
        //etc.
    };

    public string ToLatin(string cyrillic) {
        StringBuilder result = new StringBuilder();
        foreach (char c in cyrillic)
            result.Append(charMapping[c]);
        return result.ToString();
    }
}
公共类ISO9TranslationProvider{
私有只读字典charMapping=新字典(){
{'А',A'},
{Б',B'}
//等等。
};
公共字符串ToLatin(字符串西里尔文){
StringBuilder结果=新建StringBuilder();
foreach(西里尔文字符c)
result.Append(charMapping[c]);
返回result.ToString();
}
}
拉丁语到希腊语

source.Replace(pair.Value,pair.Key);

请不要重复标题中的标记(“C”)。这就是标签的作用。谢谢你的编辑。我不知道系统是这样工作的。我的错!你发布那个链接的旧版本有什么特别的原因吗?哎呀。不,那不是我的意图。谢谢你的建议,我现在正在做的那个简单的项目仍然使用这种方法太多了:)不过这会在以后的另一个项目中派上用场,所以再次感谢;)
text.Replace(pair.Key, pair.Value); 
source.Replace(pair.Value,pair.Key);