代码之家  ›  专栏  ›  技术社区  ›  Na7coldwater

用C语言将对象数组转换成另一个类型的简单方法#

  •  1
  • Na7coldwater  · 技术社区  · 16 年前

    我希望能够快速将对象数组强制转换为其他类型,如字符串,但以下代码不起作用:

    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中。

    4 回复  |  直到 16 年前
        1
  •  5
  •   ChaosPandion    16 年前

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

        2
  •  4
  •   tzaman    16 年前

    使用LINQ:

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

    我能问一下你为什么用 ArrayList 首先,不是一般的集合类型?

        3
  •  1
  •   Diego Pereyra    16 年前

    你可以做一些像

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

    把它投射到任何你喜欢的地方:)

        4
  •  0
  •   Marius Schulz    16 年前

    +1用于一般集合,例如 List<T> - 1 ArrayList 最好穿樟脑球。