C# 无法将类型“System.Collections.ArrayList”隐式转换为“BookReservationRQReservation[]

C# 无法将类型“System.Collections.ArrayList”隐式转换为“BookReservationRQReservation[],c#,arraylist,types,C#,Arraylist,Types,我有一个ArrayList,我想在其中添加项目,然后用bookingrquest分配它。预订我尝试了几次,但没有找到解决方案,如何将ArrayList转换为BookReservationRQReservation[] BookReservationRQ bookingrquest = new BookReservationRQ(); ArrayList reservation = new ArrayList(); int count = 0; foreach (var item

我有一个ArrayList,我想在其中添加项目,然后用bookingrquest分配它。预订我尝试了几次,但没有找到解决方案,如何将ArrayList转换为BookReservationRQReservation[]

 BookReservationRQ bookingrquest = new BookReservationRQ();
  ArrayList reservation = new ArrayList();

  int count = 0;

  foreach (var item in reservation_details.selectedrooms)
  {
      reservation.Add(item.IDHotel);
      count++;
  }


  bookingrquest.Reservations = reservation;// i have this error in this line


   public BookReservationRQReservation[] Reservations {
     get {
        return this.reservationsField;
     }
     set {
         this.reservationsField = value;
    }
    }

由于您的请求对象需要一个数组,那么通过替换以下内容直接对数组进行uzing如何:

ArrayList reservation = new ArrayList();

假设reservation_details.selected是一个列表

然后更换

 reservation.Add(item.IDHotel);


在for循环之前,初始化iter=0

好吧,似乎您将bookingrquest.Reservations定义为BookReservationRQReservation的数组,这与包含IDHotel项目的arraylist不同。你试着创建一个BookReservationRQReservation数组怎么样?IDHotel是什么类型的?这是预订吗?@RenéVogt IDHotel仍然存在这不是问题,问题出在预订请求上。预订=预订;当然,这也是问题的一部分。不能将字符串放入BookReservationRQReservations数组中。如何用字符串创建BookReservationRQReservation?@RenéVogt我用BookReservationRQReservation更新了问题,除非从字符串到BookReservationRQReservation进行隐式转换,否则不会编译该问题。OP说IDHotel是字符串类型,而不是BookReservationRQReservation。@ReneéVogt,在回答时,该评论不可用。第二,在投赞成票或反对票之前,我试着弄清楚我的意图。如果它是字符串类型,那么最后替换的语句可以根据我所知得到增强,这就是为什么我让OP澄清而不是猜测这个问题最重要的信息。
 reservation.Add(item.IDHotel);
reservation[iter++] = item.IDHotel;