例如有一个byte[] aa = {1,2,3,4};
我想传递从a[1]开始传递后3个元素给一个函数,请问怎么样才可以

解决方案 »

  1.   


    (from a in aa select a).Reverse().Take(3);
      

  2.   

    数组已经是淘汰货了现在大家都用
    IEnumerable<T>
      

  3.   

    好像数组没有现成的方法,要不自己写
    如果不是一定用数组的话考虑下用ListList<Byte> b = new List<byte>();
    List<Byte> c = b.GetRange(i,i+3);Method1(c);
      

  4.   

    lz大概不知道C中数组和C#中数组的区别吧。C中准确说没有数组这种东西。你用int a[]生成的是一段连续的内存空间,然后a[x]访问数组单元,这里[]其实是一种符号,然后a本身也不是一个对象,它只是一个内存地址的引用。
    而C#中数组是一个真实的对象。
      

  5.   

    C#依然有指针,只是被认为不安全,只有在标记了unsafe的代码中才能使用。
    所以要用类似C的指针去做也可以,但是不推荐,一旦出界不知道会发生什么情况。
      

  6.   


    C里面的[]符号其实也是来源于ASM寻址方面的,一种方便的写法。
      

  7.   

    谢谢了,明白了C#数组是什么了,可是,能实现像C中那样我想传递从a[1]开始传递后3个元素给一个函数,可以吗?
      

  8.   


                byte[] aa = { 1, 2, 3, 4 };
                byte[] ss = (byte[])aa.Reverse().Take(3).ToArray();//取2,3,4到ss