当前位置:编程学习 > C#/ASP.NET >>

删除数组的前五个元素

string []a = new string[10]{"a","b","c","d","f","g","h","i","j","k"};
怎样删除数组的前五个元素 要代码 .. wo 是菜鸟
--------------------编程问答-------------------- 能吗?不会 --------------------编程问答--------------------

 string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            a = a.Skip(5).ToArray();
--------------------编程问答-------------------- 呵呵  楼上的方法还没试过哈。还有这简单的方法啊。 --------------------编程问答--------------------

            string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            string[] b = a.Skip(5).ToArray();
--------------------编程问答-------------------- 我要的是删除不是跳过
引用 2 楼 symbol_bc 的回复:
C# code

 string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            a = a.Skip(5).ToArray();
--------------------编程问答-------------------- 我们是一伙的 ...正在测试...

引用 4 楼 hztltgg 的回复:
C# code

            string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            string[] b = a.Skip(5).ToArray();
--------------------编程问答--------------------
引用 5 楼 halo_zeligli 的回复:
我要的是删除不是跳过

引用 2 楼 symbol_bc 的回复:
C# code

string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

a = a.Skip(5).ToArray();



这不是一样吗? 相当一删除了前面5个 --------------------编程问答-------------------- 学习,没用过这个,试了下确实很好用

string[] s = { "a", "b", "c", "d", "e" };
        s = s.Skip(1).ToArray();
        string result = null;
        for (int i = 0; i < s.Length; i++)
        {
            result += s[i];
        }
        Response.Write(result);
        //输出bcde
--------------------编程问答--------------------

            string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            var b = a.ToList();
            b.RemoveRange(0, 5);
            a = b.ToArray();
--------------------编程问答-------------------- 数组是连续分配空间的,所以不可能删除前五个元素还能保持他自己,倒是可以删除后五个元素。

你的需求删除也好,跳过也好,其实都是要另外建立一个数组,原数组部分拷贝过去实现的,没有删除一说。 --------------------编程问答-------------------- IndexOf() --------------------编程问答--------------------
引用 2 楼 symbol_bc 的回复:
C# code

 string[] a = new string[10] { "a", "b", "c", "d", "f", "g", "h", "i", "j", "k" };

            a = a.Skip(5).ToArray();

这个方法完全可以得到你想要的结果。如果你非得说在原数组上删除的话,可以自己写个算法
如下:for (int i = 4; i < a.Length - 1; i++)
        {
            a[i - 4] = a[i + 1];
            a[i + 1] = null;
        }
        //a = a.Take<string>(5).ToArray() ;因为数组初始化的时候是开辟连续的空间存放数据,不能想List等其他集合似的直接删除元素,所以只能将数组元素换位,而不能缩短原数组的长度,要实现长度也变短,就采用楼上提供的方法,或者a = a.Take<string>(5).ToArray()  --------------------编程问答-------------------- 试试楼上的吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,