如何使用LINQ的foreach循环?

时间:2013-05-30 09:39:43

标签: c# linq foreach

我在使用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 个答案:

答案 0 :(得分:2)

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

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

请注意您的代码行

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

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

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

答案 1 :(得分:1)

当然你想要的是:

foreach (tblBookingGuest guest in guests)
{
  ...
}

答案 2 :(得分:1)

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

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

请记住,您无法直接将访客列表中的成员修改为foreach循环。

希望它可以提供帮助。

答案 3 :(得分:1)

纯粹的linq:

    booking.tblBookingGuests.ToList().ForEach(a =>
    {
        // Do your stuff
    });