C# array与arraylist区别及获取sql字段名

时间:2023-02-23 09:08:26

array与arraylist的区别:

1、  Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果更改了 ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制。

2、ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。

3、 arraylist中 属性

Count属性是目前ArrayList包含的元素的数量,这个属性是只读的。

Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常。

IsFixedSize获取一个值,显示是否具有固定大小。

Item获取或设置指定索引的元素

4、arraylist中 常用方法属性

Add方法用于添加一个元素到当前列表的末尾

AddRange方法用于添加一批元素到当前列表的末尾

Remove方法用于删除一个元素,通过元素本身的引用来删除

RemoveAt方法用于删除一个元素,通过索引值来删除

RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除

Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动

InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动

CopyTo将 arraylist 或它的一部分复制到一维数组中

ToArray将 ArrayList 的元素复制到新数组中

TrimToSize将容量设置为 ArrayList 中元素的实际数目

Clear从 ArrayList 中移除所有元素

5、将arraylist转换为array

ToArray方法:

arraylist al=new arraylist();

int[] ss=(int[]) al.ToArray();

CopyTo方法:

arraylist al=new arraylist();

int[] ss=new int[al.count];

al.CopyTo(ss);

区别:(转载)

ArrayList是动态数组,它不包括通过Key或者Value快速访问的算法,所以实际上调用IndexOf、Contains等方法是执行的简单的循环来查找元素,所以频繁的调用此类方法并不比你自己写循环并且稍作优化来的快,如果有这方面的要求,建议使用Hashtable或SortedList等键值对的集合。

ArrayList 提供将只读和固定大小包装返回到集合的方法。而 Array 不提供。

另一方面,Array 提供ArrayList 所不具有的某些灵活性。例如:

可以设置 Array 的下限,但 ArrayList 的下限始终为零。

Array 可以具有多个维度,而 ArrayList 始终只是一维的。

特定类型(不包括 Object)的 Array 的性能比 ArrayList 好,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱。

要求一个数组的大多数情况也可以代之以使用 ArrayList。它更易于使用,并且通常具有与 Object 类型的数组类似的性能。

Array 位于 System 命名空间中;ArrayList 位于 System.Collections 命名空间中。

获取sql中字段名:

dr = sqlCmd.ExecuteReader();
            for(int   i=0;i<=dr.FieldCount-1;i++)
            {
            //    s+=dr.GetName(i);

list.Add(dr.GetNae(i));
            }