ArrayList的用法分析

ArrayList有个Remove方法,定义如下:

[C#]
public virtual void Remove(
   object obj
);
参数
 
 
obj
要从 ArrayList 移除的 Object。该值可以为空引用(Visual Basic 中为 Nothing)。


示例

   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个元素已经被移除了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值