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的对象。下面是通常的做法:

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


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

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


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

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


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

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


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

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

posted @   Justin  阅读(7200)  评论(9编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示