如何将列表转换为int [] []

时间:2015-06-18 20:28:48

标签: c# .net

我有一个课堂作品,我定义了每个作品的形状。

import UIKit
import Foundation

class ViewController: UIViewController {

    var token = "barrymanilow"
    var endPoint = "http://www.never.money/simple_app7.php"


@IBOutlet weak var firstLabel: UILabel!

override func viewDidLoad() {
    submitAction(self)
}

func submitAction(sender: AnyObject) {

    let myUrl = NSURL(string: "http://www.mindyour.money/simple_app7.php");
    let request = NSMutableURLRequest(URL:myUrl!);
    request.HTTPMethod = "POST";

    // Compose a query string
    let postString = "token=\(token)";

    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
        data, response, error in

        if error != nil{
            println("error=\(error)")
            return
        }

        // Print out response body
        let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
        println("responseString = \(responseString)")

        //Let's convert response sent from a server side script to a NSDictionary object:

        var err: NSError?
        var myJSON = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error:&err) as? NSArray

var json : JSON = JSON(data: data)

        let results: AnyObject? = myJSON?.valueForKey("player_username")
        println("\(results)")
let result2 = json["player_username"].string


    }

    task.resume()
}
}

但是我手工制作这些形状,现在我实时阅读这些作品,所以我创建了类似

的东西
myShape.Add(new piece
        {
            Height = 3,
            Width = 2,
            Name = "3x2 L TopRight",
            Size = 4,
            Shape = new int[][] {
                        new int[] { 1, 0 },
                        new int[] { 1, 0 },
                        new int[] { 1, 1 }
                    }
        });

那么如何使用virtualRow创建Shape?

我尝试像

这样的东西
List<int[]> virtualRow = new List<int[]>();
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 1 });

但是说

  

无法隐式转换类型&#39; int [] []&#39;到&#39; int []&#39;

3 个答案:

答案 0 :(得分:8)

virtualRow.ToArray() 已经一个int值数组的数组。您不需要创建一个新的int数组数组并将其添加到其中。

您只需要:

Shape = virtualRow.ToArray(),

答案 1 :(得分:3)

virtualRow是整数数组的List,因此要获得整数数组的数组,只需编写:

Shape = virtualRow.ToArray();

... List.ToArray()的返回类型为T []。

您的代码出错了,因为它尝试添加 int[][]Shape而不是创建 Shape作为{ {1}}。

答案 2 :(得分:1)

您想要执行以下操作:

Shape  = virtualRow.ToArray();

由于virtualRow已经是一个数组列表。 ToArray函数为int[][]创建virtualRow对象,您需要做的就是将其存储为形状。你要做的是创建一个矩阵,其中是ToArray函数的结果。这样你就可以存储函数的结果,它可以提供你想要的东西。