此任意加了引号,所以当然不是随意的任意,是如下描述的任意:
1、如int[] aa=new int[100]{1,5,80,55,69};
上面的语句在编译时出错。
我的本意是定义一个100长度的数组,但是起初只对前面几个元素赋值,结果出错,是不是在C#中不能在定义的时候对部分元素赋值???但是可以对全部的元素赋值??2、int[] aa=new int[100];现在我想对数组中的部分元素赋值,如对30,51,55,58,67,90等索引的元素赋值,是不是每赋值一个元素就必须得些一条语句,如:
aa[30]=123;
aa[51]=888;
............
我的问题是,可不可以用一个语句对指定的元素进行赋值--------只用一个语句,如能不能这样:aa[30,51,55,58]={123,888,555,444},在C#中存不存在这样的简单语句进行赋值???
3、问个数组意外的问题,就是UTF-7,和UTF-8的问题,这两者有什么区别??
比如我有一个byte数组,应用时需要先转为字符串,然后再将该字符串原封不动地转为byte数组,但是有个问题:byte数组中有的元素大于128,如ACII码为200,
使用encoding.utf7.getstring(),encoding.utf7.getbytes(),
encoding.utf8.getstring(),encoding.utf8.getbytes()进行转换,大家猜猜哪个会满足要求?:就是原封不动地再转换为byte数组??我现在想问的是为什么会不同???UFT-7,UTF-8,以及unicode还有些现在记不起来的字符编码集,使用起来有什么区别?不要大家复制网上的说法,大家用自己的语言描述下自己的看法???!!!谢谢了,非常感谢!!!“知其然,还要知其所以然”,呵呵,此为求学之道!!再次谢谢。有点急,不知道把问题描述清楚没有?

解决方案 »

  1.   

    1.可以对部分元素赋值,也可以对所有元素赋值                int[] aa = new int[100];
                    aa[0] = 1;
                    aa[1] = 5;
                    aa[2] = 80;
                    aa[3] = 55;
                    aa[4] = 90;或者int[] aa = new int[100] { 1, 5, 80, 55, 69,0,0,... }; //省略93个0
    2.给指定元素赋值,每赋值一个元素就必须得写一条语句aa[30]=123;
    aa[51]=888;要想给指定的索引集元素赋值,你可以自定义一个方法        private void button1_Click(object sender, EventArgs e)
            {
                    int[] aa = new int[100];
                    Dictionary<int, int> dic = new Dictionary<int, int>();  //索引,值
                    dic.Add(1, 1);
                    dic.Add(2, 5);
                    dic.Add(5, 50);
                    dic.Add(6, 60);                SetValues(ref aa, dic);
                    foreach (int i in aa)
                    {
                        Console.WriteLine(i);
                    }
            }        private void SetValues(ref int[] arr, Dictionary<int, int> index)
            {
                foreach (KeyValuePair<int, int> key in index)
                {
                    arr[key.Key] = key.Value;
                }
            }3.unicode双字节,UTF-8可变长度
      

  2.   

    1和2没有什么所以然,语法规则而已...小王八屁股,你没得选择...至于3...Unicode是字符集,UTF是字符编码...UTF是Unicode的实现方式,UTF-7、UTF-8是两种不同的UTF编码方案...UTF-7是为了替代BASE64的电邮编码方案,基本已经被淘汰,很少有人用了...UTF-8是目前应用最广泛的方案,然而.NET字符采用的是UTF-16方案,输出时才用UTF-8以减小存储空间...另外ASCII是最古老的字符集及字符编码(两个概念一个名字),基本ASCII只用128个bit,扩展ASCII也只用256个bit,只支持纯英文和控制符及少量半角符号...所有字符集都兼容扩展ASCII...你要把“byte数组,应用时需要先转为字符串”不是任你乱来的,原来是什么字符编码就只能用什么字符编码...也不叫“转”,叫做“解码”...基本概念搞清楚...