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

标签 c# asp.net-mvc asp.net-core

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

相关文章:

c# - C++ 中的多播委托(delegate)

c# - 如何在c#中写入日志文件?

c# - 如何在 T4 模板中获取枚举类型

asp.net - 用于 ASP.NET MVC 的基于 XAML 的 View 引擎

c# - ViewModel 将所有 500 多条记录的相同值返回到 View

c# - 是否可以将 onclick() 事件应用于 span 标记?

c# - 使用键名从 ModelState 获取值

azure - 如何将传出 HttpClient 请求正文记录到 Application Insights 依赖项表中?

entity-framework - ASP.NET vNext MVC 和 Entity Framework 问题

.net - Azure 云存储 SDK UploadFromStreamAsync 存储 0 字节