我希望能够快速将对象数组转换为其他类型,例如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中。
答案 0 :(得分:6)
最好的解决方案是使用List<string>
。
答案 1 :(得分:4)
使用LINQ:
String[] c = b.Cast<String>().ToArray();
请问您为什么首先使用ArrayList
而不是通用集合类型?
答案 2 :(得分:1)
您可以执行类似
的操作myArray.Select(mySomething => new SomethingElse(mySomething)).ToArray()
将它投射到你喜欢的任何地方:)
答案 3 :(得分:0)
+1代表List<T>
等通用集合,ArrayList
代表-1,最好放在樟脑丸上。