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

2回目の編集

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 に答える