您的位置:首页 > 其它

ArrayList的用法分析

2005-10-20 09:50 316 查看
ArrayList有个Remove方法,定义如下:
[C#]
public virtual void Remove(
objectobj
);

参数

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个元素已经被移除了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: