[英]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.