2014-12-05 76 views
-5

我目前正在尝试创建一个AddBooking方法,它将一个给定的Booking对象添加到预订字典中(使用Booking的bo​​okingID作为键),但我真的不确定如何去做,我已经开始了,但我不确定首先要把什么放在括号中,然后再用什么方法。任何帮助或提醒,将不胜感激:)如何添加一个对象到字典中的c#

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 ..?) 
     { 

     } 
    } 
} 
+1

对于任何标准语言操作指语言文档而不是SO:http://msdn.microsoft.com/en-us/library/k7z0zy8k%28v=vs.110%29.aspx – PiotrWolkowski 2014-12-05 15:01:36

+0

在将来你至少应该在提出这样一个基本问题之前先看看doc页面。它实际上是方法列表中的第一个方法[在字典文档中](http://msdn.microsoft.com/en-us/library/xfhwa508%28v=vs.110%29.aspx) – pquest 2014-12-05 15:01:45

回答

1

我可能失去了一些东西,因为这似乎太容易了:

public void AddBooking (int bookingID, Booking booking) 
{ 
    this.bookings.Add(bookingId, booking); 
} 

如果值可能已经存在,你将要测试,如果该键存在在字典中,并决定替换它,或者忽略重复。

0
this.bookings.Add(bookingID, booking); 
2

有两种方式

if (!this.bookings.ContainsKey(bookingId)) 
    this.bookings.Add(bookingID, booking); 

this.bookings[bookingID] = booking; 

在第二种情况下,没有添加相同的键两次的风险。但是,如果有提供密钥的条目,则该值将被新条目取代。

+0

你有一个很好的点这里 – Steve 2014-12-05 14:59:33

+0

添加前使用'ContainsKey'检查是件好事。 – Habib 2014-12-05 15:01:12

+0

为什么你不会在这种情况下做一个TryAdd?这样,钥匙只能抬头一次。 – 2014-12-05 15:03:01

0

我不喜欢使用添加,因为如果密钥存在,您可以有异常;如果重复键是可能的,你应该首先检查存在。但要添加或更新,请使用索引器。

public void AddBooking (int bookingID, Booking booking) 
{ 
    bookings[bookingID] = booking; 
}