string[] str = new string[]{"1", "2", "3" };我想把它转化为int数组int[] in = str.Cast<int>.ToArray();总是得到NULL,指定的转换类型无效。请问到底是怎么用的。

解决方案 »

  1.   

    int[] in = str.Select(s => int.Parse(s)).ToArray();
      

  2.   

    cast方法其本身执行的是强制转换(int)"1",你认为这种转换能成功否??
    正确的方法
    string[] str = new string[]{"1", "2", "3" };int[] res=str.Select(c=>Convert.ToInt32(c)).ToArray();
      

  3.   

    我想,应该使用Select
    var str = new string[]{"1", "2", "3" };
    var in = str.Select(s => int.Parse(s)).ToArray();
      

  4.   


    string[] str = new string[]{"1", "2", "3" };
    int[] ins = str.Where(s=>Regex.IsMatch(s,"\\d+"))
       .Select(s=>Convert.ToInt32(s))
       .ToArray();