c锐利的三维数组

时间:2012-07-15 12:59:49

标签: c# api multidimensional-array

我是一个c#家伙,并且使用api,所有示例都在php中,所以我需要帮助,所以我可以理解这段代码到底是什么

$rooms = array();

     // First Room
     $rooms[] = array(array("paxType" => "Adult"));

     // Second Room
     $rooms[] = array(array("paxType" => "Adult"), array("paxType" => "Adult"), array("paxType" => "Child", "age" => 8));

我需要任何人可以向我描述这段代码,因为我是c#guy。

因为我在这周围谷歌,所以这是一个我已经理解的多维数组

和pax是这个api中的类(根据api文档),它有一些属性,如paxtype,age等......

但是我没有在c#中找到正确的方法。

修改

传递给此方法的pax类型多维数组

public getAvailableHotelResponse getAvailableHotel(string apiKey, string destinationId, DateTime checkIn, DateTime checkOut, string currency, string clientNationality, bool onRequest, pax[][] rooms, filter[] filters);

第二次编辑

public getAvailableHotelResponse getAvailableHotel(string apiKey, string destinationId, DateTime checkIn, DateTime checkOut, string currency, string clientNationality, bool onRequest, pax[][] rooms, filter[] filters);

我必须在我的方法中传递此pax [] []房间,房间将具有以下结构

rooms[0][0][paxType]=Adult
rooms[0][1][paxType]=Adult
rooms[0][2][paxType]=Child
rooms[0][2][age]=6


rooms[1][0][paxType]=Adult
rooms[1][1][paxType]=Adult
rooms[1][2][paxType]=Child
rooms[1][2][age]=8

并且pax类位于

之下
 public class pax
    {
        public pax();

        [SoapElement(DataType = "integer")]
        public string age { get; set; }
        public string firstName { get; set; }
        public string lastName { get; set; }
        public string paxType { get; set; }
        public string title { get; set; }
    }

我认为现在对我们所有人来说都更清楚了。

2 个答案:

答案 0 :(得分:1)

数组在PHP中是动态的。由于无法确定大小,因此将其转换为C#将需要非原始数组。

// $rooms = array ();
List<List<pax>> rooms = new List<List<pax>>();

ff PHP代码,

$rooms[] = array (array ("paxType" => "Adult"));

也可以解释为:

$room = array ();
$pax = array ();
$pax["paxType"] = "Adult";
$room[] = $pax;
$rooms[] = $room;

因此,

// $room = array ();
List<pax> room = new List<pax>();

// $pax = array ();
pax p = new pax();

// $pax["paxType"] = "Adult";
p.paxType = "Adult";

// $room[] = $pax;
room.Add(p);

// $rooms[] = $room;
rooms.Add(room);

然后将其转换为原始数组。

// this will be the pax type array
pax[][] paxRooms = new pax[rooms.count][];
for (int i = 0; i < rooms.Count; i++) {
    paxRooms[i][] = rooms[i].ToArray();
}

P.S。我是一个PHP / Java人,所以请原谅我的语法错误。

答案 1 :(得分:-1)

$rooms数据结构如下所示:

[
  [{paxType:"Adult"}],
  [{paxType:"Adult"}, {paxType:"Adult"}, {paxType:"Child", age:8}]
]