0

我在使用带有 LINQ 的 foreach 循环时遇到了一些问题,这是我到目前为止所拥有的代码,我正在尝试获取与特定预订相关的客户列表,任何帮助将不胜感激 =]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;   


namespace BookingCustomers
{
    public partial class BookingGuests : System.Web.UI.Page
    {
        private HotelConferenceEntities datacontext = new HotelConferenceEntities();



        private void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                try
                {

                    int id = int.Parse(BookID.Text.ToString());
                    tblBooking booking = datacontext.tblBookings.SingleOrDefault(x => x.BookingID == id);

                    tblVenue venue = datacontext.tblVenues.SingleOrDefault(x => x.VenueID == booking.Venue);


                    List<tblCustomer> customers = new List<tblCustomer>();
                    List<tblBookingGuest> guests = booking.tblBookingGuests.ToList();



                    foreach (list<tblBookingGuest> in tblBookingGuest)
                    {



                    }
}
4

4 回答 4

2

您缺少循环变量声明,并且声明的类型错误 - 哦,您使用了错误的序列。我认为这就是你想要的:

foreach (var guest in booking.tblBookingGuests)
{
    // Do something with guest
}

请注意,您的代码行

List<tblBookingGuest> guests = booking.tblBookingGuests.ToList();

是多余的。它将复制整个预订客人的顺序。

您应该booking.tblBookingGuests直接在 中使用,foreach 除非您要修改列表本身而不是其中的项目。(如果你这样做,它不会改变原来的,当然。)

于 2013-05-30T09:41:27.677 回答
1

纯 linq 怎么样:

    booking.tblBookingGuests.ToList().ForEach(a =>
    {
        // Do your stuff
    });
于 2013-05-30T09:55:07.933 回答
1

当然你想要的是:

foreach (tblBookingGuest guest in guests)
{
  ...
}
于 2013-05-30T09:42:34.320 回答
1

我猜你想访问预订变量中的所有 tblBookingGuest。

foreach (tblBookingGuest guest in guests)
{
 //something
}

请记住,您不能直接将客人列表的成员修改到 foreach 循环中。

希望它可以帮助。

于 2013-05-30T09:46:47.250 回答