Converting ArrayList to Array / Array to ArrayList C# (原创翻译)

简介:

在C#里把ArrayList转换为Array 或 把Array转换为ArrayList
原文地址: http://www.dotnetspider.com/kb/Article1709.aspx

06 日Dec, 2005 年  作者: Aldwin Enriquez 
Narrasoft 菲律宾公司。   

概述
这篇文章解释如何使用最简单的方法把Array转换成ArrayList和相反的转换。

使用的.NET类
System.Collections.ArrayList 
 
介绍
操作数组是应用开发中最普通的任务之一。有时你需要使用一组对象来获得操作对象的属性的能力,并且有时你为了更大的灵活性而使用ArrayList。在这两种方式之间进行抉择是非常痛苦的事情。这篇文章教你如何更好的去解决这个问题。

笨方法
几乎所有的初学者都是手工进行的变换。就从转换对象数组到ArrayList来说,一种方法可能是先初始化一个ArrayList对象,然后再循环把数组里的每一个对象添加到ArrayList中。
让我们假设我们有一个称做Person的对象。下面是通常的做法:

1 Person[] personArray  =  myPerson.GetPersons();
2 ArrayList personList  =   new  ArrayList();
3 foreach (Person objPerson  in  personArray)
4 {
5  personList.Add(objPerson);
6}


并且也可以使用这种方式从一个ArrayLIst创建一个对象数组:

1 Person[] personArrayFromList  =   new  Person[personList.Count];
2 int  arrayCounter  =   0 ;
3 foreach (Person objPerson  in  personList)
4 {
5  personArrayFromList.SetValue(objPerson,arrayCounter++);
6}


简单的方法
但是我们为什么不使用.NET类库内置的方法来实现这个功能呢?
把一个对象数组转换成ArrayList可以使用ArrayList.Adapter方法。这个方法把一个IList包裹在一个ArrayLIst里。现在上面的代码就可以写成:

1 Person[] personArray  =  myPerson.GetPersons();
2 ArrayList personList  =  ArrayList.Adapter(personArray);


把一个ArrayList转换成对象数组可以使用ArrayList.ToArray方法。现在上面的代码就可以写成:

1 Person[] personArrayFromList  =  (Person[])personList.ToArray( typeof (Person));


不要忘了在调用ArrayList.ToArray方法之前进行强制类型转换,否则在编译的时候会出错提示你不能把一个ArrayList转换成Person对象数组。

总结
综上所述,下次你要转换一个对象数组为ArrayList的时候,就可以使用静态方法ArrayList.Adapter;或者可以使用ArrayList对象的ArrayLIst.ToArray方法来实现相反的转换。


本文转自Justin博客园博客,原文链接:http://www.cnblogs.com/justinw/archive/2006/04/09/370609.html,如需转载请自行联系原作者

相关文章
|
存储 Java 索引
【面试题精讲】ArrayList 和 Array(数组)的区别?
【面试题精讲】ArrayList 和 Array(数组)的区别?
|
存储 安全 Java
从源码到场景,用 5 分钟讲透 Array 和 ArrayList 的差异
大家好,我是小米,29岁的技术分享者。今天聊聊社招面试中常见的问题——Array和ArrayList的区别。数组是固定大小的容器,长度不可变,性能高;ArrayList是动态数组,可自动扩容,支持更多操作但性能稍逊。在实际开发中,根据需求选择:高性能、固定大小选数组;灵活操作选ArrayList。希望这篇文章能帮你答出漂亮的答案!欢迎关注我的微信公众号“软件求生”,获取更多技术干货。
235 5
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
|
Java
Java 数组(Array)与集合(List、ArrayList ...)的区别
Java 数组(Array)与集合(List、ArrayList ...)的区别
1126 0
Java 最常见面试题:Array 和 ArrayList 有何区别?
Java 最常见面试题:Array 和 ArrayList 有何区别?
|
存储 缓存 NoSQL
Java 8 ArrayList hugeCapacity 函数与 MAX_ARRAY_SIZE
Java 8 ArrayList hugeCapacity 函数与 MAX_ARRAY_SIZE
577 0
Java 8 ArrayList hugeCapacity 函数与 MAX_ARRAY_SIZE
|
9月前
|
测试技术 PHP 开发者
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList<>()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
921 1
Java 中数组Array和列表List的转换

热门文章

最新文章

  • 1
    PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
    249
  • 2
    Java 中数组Array和列表List的转换
    921
  • 3
    JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
    683
  • 4
    通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
    1493
  • 5
    通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
    616
  • 6
    通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
    441
  • 7
    多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
    275
  • 8
    别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
    277
  • 9
    Array.forEach实战详解:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
    168
  • 10
    深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
    699