我正在尝试创建一个AddBooking方法,它将一个给定的Booking对象添加到预订字典中(使用Booking的bookingID作为关键字),但我真的不确定该怎么做,我已经开始但是我不确定首先放入括号中的内容然后是方法中的内容。任何帮助或建议将不胜感激:)
namespace TheatreShows
{
public class Show
{
private string title;
private Dictionary<int, Booking> bookings;
public string Title
{
get { return title; }
set { title = value; }
}
public Show(string title)
{
this.title = title;
this.bookings = new Dictionary<int, Booking>();
}
public void AddBooking (int bookingID, Booking ..?)
{
}
}
}
答案 0 :(得分:2)
有两种方式
if (!this.bookings.ContainsKey(bookingId))
this.bookings.Add(bookingID, booking);
或
this.bookings[bookingID] = booking;
在第二种情况下,不存在两次添加相同密钥的风险。但是如果有一个带有提供密钥的条目,则该值将被新的替换。
答案 1 :(得分:1)
我可能会遗漏一些东西,因为这似乎太容易了:
public void AddBooking (int bookingID, Booking booking)
{
this.bookings.Add(bookingId, booking);
}
如果这些值可能已经存在,您将首先测试该键是否存在于字典中并决定替换它,或忽略该副本。
答案 2 :(得分:0)
this.bookings.Add(bookingID, booking);
答案 3 :(得分:0)
我不喜欢使用Add,因为如果密钥存在,您可能会有异常;如果有可能存在重复键,则应首先检查是否存在。但要添加或更新,请使用索引器。
public void AddBooking (int bookingID, Booking booking)
{
bookings[bookingID] = booking;
}