ArrayList有个Remove方法,定义如下:
[C#] public virtual void Remove( object obj );
参数
示例
ArrayList arr = new ArrayList();
string aaa = "我不知道啊";
string bbb = "你说那?";
string ccc = "晕";
TextBox tb = new TextBox();
tb.Text = "确定";
arr.Add( aaa );
arr.Add( bbb );
arr.Add( ccc );
arr.Add( tb );
Response.Write("删除之前的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
arr.Remove( bbb );
Response.Write("删除之后的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
执行结果如下:
删除之前的成员结构如下:
我不知道啊
你说那?
晕
System.Web.UI.WebControls.TextBox
删除之后的成员结构如下:
我不知道啊
晕
System.Web.UI.WebControls.TextBox
那么如果执行ArrayList.Remove(i)会出现什么结果那?
ArrayList arr = new ArrayList();
string aaa = "我不知道啊";
string bbb = "你说那?";
string ccc = "晕";
TextBox tb = new TextBox();
tb.Text = "确定";
arr.Add( aaa );
arr.Add( bbb );
arr.Add( ccc );
arr.Add( tb );
Response.Write("删除之前的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
arr.Remove( 2 );
Response.Write("删除之后的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
执行结果如下:
删除之前的成员结构如下:
我不知道啊
你说那?
晕
System.Web.UI.WebControls.TextBox
删除之后的成员结构如下:
我不知道啊
你说那?
晕
System.Web.UI.WebControls.TextBox
可以发现,元素并没有被删除,因为找不到 2 这个对象 , 也没有抛出异常
[问] 那么也就是说我没有办法直接删除第n个元素?
[问] 那么也就是说我没有办法直接删除第n个元素?[答] 当然不是了,用下面的代码就可以了
ArrayList arr = new ArrayList();
string aaa = "我不知道啊";
string bbb = "你说那?";
string ccc = "晕";
TextBox tb = new TextBox();
tb.Text = "确定";
arr.Add( aaa );
arr.Add( bbb );
arr.Add( ccc );
arr.Add( tb );
Response.Write("删除之前的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
arr.Remove( arr[2] );
Response.Write("删除之后的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
执行结果如下:
删除之前的成员结构如下:
我不知道啊
你说那?
晕
System.Web.UI.WebControls.TextBox
删除之后的成员结构如下:
我不知道啊
你说那?
System.Web.UI.WebControls.TextBox
可以看到,第三个元素已经被移除了
找了一下msdn,发现还有一个更简单的根据索引移除元素的方法:
ArrayList arr = new ArrayList();
string aaa = "我不知道啊";
string bbb = "你说那?";
string ccc = "晕";
TextBox tb = new TextBox();
tb.Text = "确定";
arr.Add( aaa );
arr.Add( bbb );
arr.Add( ccc );
arr.Add( tb );
Response.Write("删除之前的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
arr.RemoveAt( 2 );
Response.Write("删除之后的成员结构如下:<br>");
for( int i = 0 ; i < arr.Count ; i++ )
{
Response.Write( arr[i].ToString() + "<br>" );
}
执行结果如下:
删除之前的成员结构如下:
我不知道啊
你说那?
晕
System.Web.UI.WebControls.TextBox
删除之后的成员结构如下:
我不知道啊
你说那?
System.Web.UI.WebControls.TextBox
可以发现,第3个元素已经被移除了