我在使用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)
{
}
}
答案 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
});