繁体   English   中英

在C#中将对象数组转换为另一种类型的简单方法

[英]Easy way to cast an object array into another type in C#

我希望能够快速将对象数组转换为其他类型,例如String,但是以下代码不起作用:

String[] a = new String[2];
a[0] = "Hello";
a[1] = "World";
ArrayList b = new ArrayList(a);
String[] c = (String[]) b.ToArray();

而且我不想这样做:

String[] a = new String[2];
a[0] = "Hello";
a[1] = "World";
ArrayList b = new ArrayList(a);
Object[] temp = b.ToArray();
String[] c = new String[temp.Length];
for(int i=0;i<temp.Length;i++)
{
    c[i] = (String) temp[i];
}

有没有一种简单的方法,而无需使用临时变量? 编辑:顺便说一下,这是在ASP.NET中。

最好的解决方案是使用List<string>

使用LINQ:

String[] c = b.Cast<String>().ToArray();

请问为什么首先使用ArrayList而不是通用集合类型?

你可以做类似的事情

myArray.Select(mySomething => new SomethingElse(mySomething)).ToArray() 

将其转换为您喜欢的任何东西:)

+1代表通用Collections,例如List<T> ,-1代表ArrayList ,最好放在后备箱上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM