C# 使用c中的字典和linq将英语数字替换为阿拉伯语数字时出错#
我已经编写了一个函数,使用字典和linq将任何给定字符串中的英语数字替换为阿拉伯语数字。但该功能并没有完全替代。例如,如果英语数字是12345,阿拉伯语数字是12534或53214。有什么问题吗 我的职责如下:C# 使用c中的字典和linq将英语数字替换为阿拉伯语数字时出错#,c#,linq,dictionary,C#,Linq,Dictionary,我已经编写了一个函数,使用字典和linq将任何给定字符串中的英语数字替换为阿拉伯语数字。但该功能并没有完全替代。例如,如果英语数字是12345,阿拉伯语数字是12534或53214。有什么问题吗 我的职责如下: private Dictionary<string, string> NumbersInArabic() { Dictionary<string, string> dictionary = new Dictionary<string, string&
private Dictionary<string, string> NumbersInArabic()
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("0", "٠");
dictionary.Add("1", "١");
dictionary.Add("2", "٢");
dictionary.Add("3", "٣");
dictionary.Add("4", "٤");
dictionary.Add("5", "٥");
dictionary.Add("6", "٦");
dictionary.Add("7", "٧");
dictionary.Add("8", "٨");
dictionary.Add("9", "٩");
return dictionary;
}
private string ReplaceNumberTextToArabic(string text)
{
var newstr = NumbersInArabic().Aggregate(text, (current, value) => current.Replace(value.Key, value.Value));
return newstr.ToString();
}
private Dictionary NumbersInArabic()
{
字典=新字典();
字典。加上(“0”、“٠”);
字典。加上(“1”、“١”);
词典.添加(“2”、“٢”);
字典。加上(“3”、“٣”);
字典。加上(“4”、“٤”);
字典。加上(“5”、“٥”);
字典。加上(“6”,“٦”);
字典。加上(“7”,“٧”);
字典。加上(“8”,“٨”);
字典。加上(“9”、“٩”);
返回字典;
}
私有字符串ReplaceNumberTextToArabic(字符串文本)
{
var newstr=NumbersInArabic().Aggregate(text,(current,value)=>current.Replace(value.Key,value.value));
return newstr.ToString();
}
我已经编写了您的方法,并且在我这边工作得很好
我想你的问题出在别的地方。你确定这不仅仅是你的字典的问题吗?如果你能把它改成用英文字母代替数字,我们这些不懂阿拉伯数字的人就会很容易发现问题。你在用哪个操作系统?它在Windows7中运行良好,而在WindowsXP中则不行。为什么?我将它用作ReplaceNumberTextToArabic(string.Format(“{0:dd-MMMM-yyyy}”,Convert.ToDateTime(lblRequestdate.Text));我还按如下方式使用它,ReplaceNumberTextToArabic(string.Format(“{0:N}”,txtSalary12.Text)),它正在正确地替换,但阿拉伯字母应该是从右到左。怎么做?