首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个Dictionary集合的疑问。麻烦帮忙上,多谢

2013-03-19 
一个Dictionary集合的疑问。麻烦帮忙下,谢谢!char[] chArray new char[] {零,一,二,三,四,五

一个Dictionary集合的疑问。麻烦帮忙下,谢谢!
            char[] chArray = new char[] {'零','一','二','三','四','五'};
            Dictionary<char, char> dic = new Dictionary<char, char>();
            for (int i = 0; i <chArray.Length; i++)
            {
                dic.Add(Convert.ToChar(i),chArray[i]);
            }
            Console.WriteLine("请输入数字0-5");
            char num = Convert.ToChar(Console.ReadLine().Trim());
            Console.WriteLine(dic[num]);
            Console.ReadLine();



一个Dictionary集合的疑问。麻烦帮忙上,多谢

一个Dictionary集合的疑问。麻烦帮忙上,多谢

一个Dictionary集合的疑问。麻烦帮忙上,多谢


为什么不可这样做呢?可以解释下吗?谢谢! dictionary
[解决办法]
                dic.Add(Convert.ToChar(i+48), chArray[i]);

[解决办法]

        //
        // 摘要:
        //     将指定字符串的第一个字符转换为 Unicode 字符。
        //
        // 参数:
        //   value:
        //     长度为 1 的字符串。
        //
        // 返回结果:
        //     与 value 中第一个且仅有的字符等效的 Unicode 字符。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     value 为 null。
        //
        //   System.FormatException:
        //     value 的长度不是 1。
        public static char ToChar(string value);

  //
        // 摘要:
        //     将指定的 32 位有符号整数的值转换为它的等效 Unicode 字符。
        //
        // 参数:
        //   value:
        //     要转换的 32 位带符号整数。


        //
        // 返回结果:
        //     一个等于 value 的 Unicode 字符。
        //
        // 异常:
        //   System.OverflowException:
        //     value 小于 System.Char.MinValue 或大于 System.Char.MaxValue。



看看这个你应该就明白了
[解决办法]
Console.ReadLine().Trim() 出来的是string类型,要先转换为int型
char num = Convert.ToChar(Convert.ToInt32(Console.ReadLine().Trim()));

[解决办法]
已经很明白了,关健字不存在的,Convert.ToChar转换的问题

Convert.ToChar(i) //不会像你想像转换成 char i 
Convert.ToChar(66) //只会转换在B

要想正确执行还是把Dictionary<char,char> => 
Dictionary<int, char> dic = new Dictionary<int, char>();

热点排行