如何在LINQ中使用foreach循环

本文关键字:foreach 循环 LINQ | 更新日期: 2023-09-27 18:16:07

我在使用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)
                    {

                    }
}

如何在LINQ中使用foreach循环

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

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

注意你的代码行

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

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

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

你想要的肯定是:

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

我猜您想访问booking变量中所有的tblBookingGuest。

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

请记住,您不能直接在foreach循环中修改来宾列表中的成员。

希望能帮到你。

pure linq:

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