Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中从数组中删除范围#_C#_Arrays_Arraylist - Fatal编程技术网

C# 如何在C中从数组中删除范围#

C# 如何在C中从数组中删除范围#,c#,arrays,arraylist,C#,Arrays,Arraylist,如何从C中的数组中删除范围35;如使用ArrayList ArrayList myAL = new ArrayList(); myAL.Add( "The" ); myAL.Add( "quick" ); myAL.Add( "brown" ); myAL.Add( "fox" ); myAL.Add( "jumped" ); myAL.Add( "over" ); myAL.Add( "the" ); myAL.Add( "lazy" ); myAL.Add( "dog" ); my

如何从C中的数组中删除范围35;如使用
ArrayList

ArrayList myAL = new  ArrayList();

myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );
myAL.Add( "jumped" );
myAL.Add( "over" );
myAL.Add( "the" );
myAL.Add( "lazy" );
myAL.Add( "dog" );   
myAL.RemoveRange( 4, 3 );

如何使用字符串数组对象实现同样的效果?

您必须遍历所需的索引,然后将它们复制到一个新数组,因为数组实际上无法以这种方式编辑,因此数组列表的作用就在于此。

通用列表公开了一个
RemoveRange()
方法。您可以将数组转换为列表,然后删除该范围,然后再转换回数组:

var myList = myArray.ToList();
myList.RemoveRange(index, count);
myArray = myList.ToArray();
要仅删除特定索引中的一项,可以使用
RemoveAt()


我假设如果他们想要一些静态大小的缓冲区,而不是列表提供的调整大小的缓冲区,那么他们只会使用数组而不是列表。考虑到这一点,它们的缓冲区现在变小了,如果不小心,可能会溢出。我想我们必须问问自己,我们是真的想要一个更小的数组,还是想要一个静态大小的数组中的值为零。我是在寻找后者时来到这里的。
var myList = myArray.ToList();
myList.RemoveAt(index);
myArray = myList.ToArray();