gpt4 book ai didi

c# - 如何在 ASP.NET 中使 List 变量常量

转载 作者:行者123 更新时间:2023-11-30 15:18:34 32 4
gpt4 key购买 nike

在此代码中,我试图检查用户输入时哪些房间可用。为了测试房间是否空闲,我将房间名称更改为所有选项并进行了碰撞检查。问题是,当我更改房间名称时,它也会在我的现有预订列表中更新它。有没有办法确保 existingBookings 不会改变?

var existingBookings = _context.Bookings.ToList();
var booking = await _context.Bookings.SingleOrDefaultAsync(m => m.BookingID == id);

List<Room> roomlist = new List<Room>();

roomlist = (from product in _context.Room
select product).ToList();

List<Room> availableRooms = new List<Room>();

foreach (var item in roomlist)
{
booking.RoomName = item.RoomName;

if (BusinessLogic.BookingChecker.DoesBookingClash(booking, existingBookings) == null)
{
availableRooms.Insert(0, new Room { RoomID = item.RoomID, RoomName = item.RoomName });
}

booking.RoomName = "UNDEF";
}

感谢您的帮助!

最佳答案

为此,您必须创建一个新的 Booking 实例。您可以调用构造函数并复制必要的属性,或实现 ICloneable.Clone方法。

public class Booking : ICloneable
{
public Booking Clone()
{
return new Booking() { RoomID = this.RoomID, etc. };
}

object ICloneable.Clone()
{
return this.Clone();
}
}

然后你调用它:

booking = booking.Clone();

// use the new booking instance.

关于c# - 如何在 ASP.NET 中使 List 变量常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43412732/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com