C# 如何在LINQ中使用foreach循环?
我在使用LINQ的foreach循环时遇到了一些问题,这是我到目前为止的代码。我正在尝试获取与特定预订相关的客户列表,如有任何帮助,将不胜感激=]C# 如何在LINQ中使用foreach循环?,c#,linq,foreach,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; nam
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)
{
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.Data.SqlClient;
命名空间预订客户
{
公共部分类预订来宾:System.Web.UI.Page
{
private HotelConferenceEntities datacontext=新建HotelConferenceEntities();
私有无效页面加载(对象发送方,事件参数e)
{
如果(第IsPostBack页)
{
尝试
{
int id=int.Parse(BookID.Text.ToString());
tblBooking booking=datacontext.tblBookings.SingleOrDefault(x=>x.BookingID==id);
tblVenue场馆=datacontext.tblVenues.SingleOrDefault(x=>x.VenueID==booking.venue);
列出客户=新列表();
List guests=booking.tblBookingGuests.ToList();
foreach(tblBookingGuest中的列表)
{
}
}
您缺少循环变量声明,声明的类型错误-哦,您使用了错误的序列。我想这就是您想要的:
foreach (var guest in booking.tblBookingGuests)
{
// Do something with guest
}
请注意,您的代码行
List<tblBookingGuest> guests = booking.tblBookingGuests.ToList();
List guests=booking.tblBookingGuests.ToList();
这是多余的。它将复制整个预定顺序的客人
您应该直接在
foreach
中使用booking.tblBookingGuests
,除非您要修改列表本身而不是其中的项目。(如果您这样做,当然不会更改原始列表。)您缺少循环变量声明,声明的类型错误-哦,您使用了错误的序列。我想这就是您想要的:
foreach (var guest in booking.tblBookingGuests)
{
// Do something with guest
}
请注意,您的代码行
List<tblBookingGuest> guests = booking.tblBookingGuests.ToList();
List guests=booking.tblBookingGuests.ToList();
这是多余的。它将复制整个预定顺序的客人
您应该直接在
foreach
中使用booking.tblBookingGuests
,除非您要修改列表本身而不是其中的项目。(如果您这样做,当然不会更改原始内容)。当然您需要的是:
foreach (tblBookingGuest guest in guests)
{
...
}
当然,你想要的是:
foreach (tblBookingGuest guest in guests)
{
...
}
我猜您希望访问booking变量中的所有tblBookingGuest
foreach (tblBookingGuest guest in guests)
{
//something
}
请记住,您不能直接将来宾列表的成员修改到foreach循环中
希望能有所帮助。我猜您希望访问booking变量中的所有tblBookingGuest
foreach (tblBookingGuest guest in guests)
{
//something
}
请记住,您不能直接将来宾列表的成员修改到foreach循环中
希望能有所帮助。纯linq怎么样:
booking.tblBookingGuests.ToList().ForEach(a =>
{
// Do your stuff
});
纯林克怎么样
booking.tblBookingGuests.ToList().ForEach(a =>
{
// Do your stuff
});
我刚刚尝试了这个Matthew,但我从Visual Studio得到一个错误,它说BookingCustomers.tblBookingGuest是一种类型,但使用起来像'variable@ReeceCottam我想我可能已经让忍者编辑了我的回复。它现在可以工作了吗?对一些人来说是多余的,对其他人来说更可读和可维护,至于速度,编译器优化器很可能会生成id这两个都是诱人的代码。@PaulZahra你似乎不明白我在说什么。
.ToList()
将制作整个序列的副本,这是多余的。难道你看不到ToList()吗
在最后?在你列举之前,你不需要在列表中复制一个完整的序列!当然…我的糟糕…今天有点忙着买房…注意其他地方…我只想到foreach语句是诚实的我刚刚尝试了这个Matthew,我从Visual Studio得到一个错误,说BookingCustomers.tblBookingGuest是一种类型,但使用起来像'variable@ReeceCottam我想我可能让忍者编辑了我的回复。它现在可以工作了吗?对一些人来说是多余的,对其他人来说更可读和更易于维护,至于速度,编译器优化器很可能会为这两个版本生成相同的代码。@PaulZahra你似乎不明白我在说什么.ToList()
将制作序列的完整副本,这是多余的。您看不到ToList()吗
最后是什么?在你列举之前,你不需要在列表中复制一个完整的序列!当然…我的糟糕…今天有点忙着买房…注意其他地方…我只想到foreach声明是诚实的这是这个论坛中的相关线程有一些问题。
。好的,让我们来看看我打开心灵感应模式,猜猜哪个问题完全不清楚。您是否试图从来宾中检索所有客户?如何从选定的来宾项目中检索客户?是否具有功能/属性?获取与特定预订相关的客户列表这不是关于如何使用foreach
!这是ab了解如何查询。为此,我们需要查看您的类模型。这是本论坛中的相关线程有一些问题。好的,让我打开心灵感应模式,猜一猜问题完全不清楚。您是否正在尝试从来宾检索所有客户?如何从选定的来宾项目检索客户?H因为它的功能/属性?获取与特定预订相关联的客户列表这不是关于如何使用foreach
!这是关于如何查询。为此,我们需要查看您的类模型。Paul回答这个问题时,我得到了一个不同的错误,指出foreach语句都需要类型和标识符哦,别管它了!我没有给tblbookingGuest指定一个名字,我现在已经把它整理好了=D非常感谢!也许空/空列表测试不会出错,因为没有任何预订。另外,不客气。请回答这个问题