我有一个这样的字符串:
string ussdCommand = "#BAL#";
我想将其转换为“#225#”。目前,我有一个这样定义的字典:
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("ABC", 2);
dictionary.Add("DEF", 3);
dictionary.Add("GHI", 4);
dictionary.Add("JKL", 5);
dictionary.Add("MNO", 6);
dictionary.Add("PQRS", 7);
dictionary.Add("TUV", 8);
dictionary.Add("WXYZ", 9);
然后我有一个函数接受我的原始字符串(“#BAL#”)并将其转换如下:
private static string ConvertLettersToPhoneNumbers(string letters)
{
string numbers = string.Empty;
foreach (char c in letters)
{
numbers += dictionary.FirstOrDefault(d => d.Key.Contains(c)).Value.ToString();
}
return numbers;
}
正如您马上会注意到的,问题是我的字典不包含“#”条目,因此 .FirstOrDefault() 返回默认值,而我返回的是“02250”而不是“#225#”。我没有# 符号的字典条目,因为它不对应于数字,但有没有办法修改或覆盖 .FirstOrDefault() 中的默认返回值,以便它在任何时候简单地返回 # 符号发生在我的输入字符串中?