0

我是 ac# 人,正在使用所有示例都在 php 中的 api,所以我需要帮助,这样我才能准确理解这段代码是什么

$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# 人。

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

并且 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; }
    }

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

4

2 回答 2

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();
}

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

于 2012-07-15T13:54:42.697 回答
-1

$rooms数据结构如下所示:

[
  [{paxType:"Adult"}],
  [{paxType:"Adult"}, {paxType:"Adult"}, {paxType:"Child", age:8}]
]
于 2012-07-15T13:13:38.827 回答