2014-12-05 33 views
-1

我試圖添加方法Takings,它計算並返回此節目的所有預訂的總值。如果有人可能會導致我在正確的方向將是巨大的:)如何計算並返回c#中的總值?

namespace GCUShows 
{ 
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 booking) 
    { 
     this.bookings.Add(bookingID, booking); 
    } 

    public void RemoveBooking(int bookingID, Booking booking) 
    { 
     this.bookings.Remove(bookingID); 
    } 
    public Takings 
    { 
    } 
} 
+2

你能添加的定義'Booking'? – Jonny 2014-12-05 17:06:41

+0

回答你的問題是不可能的,因爲你忽略了重要的細節。你也沒有包括你如何試圖計算總數。 – xxbbcc 2014-12-05 17:14:20

+0

爲什麼你需要這裏的方法。你可以使用屬性'public int Takes {get {return bookings.Values.Sum(b => b.Val);}}'。但是,預訂在哪裏分配? – 2014-12-05 17:38:15

回答

1

假設Bookings包含一個屬性int Val,它可能看起來像:

public int Takes() 
{ 
    return bookings.Values.Sum(b => b.Val); 
} 
1

如果預訂是有成本的屬性,你可以做到這一點:或者

var total = bookings.Sum(x => x.Value.Cost); 
1

到其他LINQ的回答,你可以做同樣的事情用foreach

public decimal Takings() 
{ 
    decimal runningTotal = 0; 
    foreach (KeyValuePair<int, Booking> kvp in bookings) { 
     runningTotal += kvp.Value.TotalCost(); 
    } 
    return runningTotal; 
} 

如果你不熟悉編程,看起來可能不那麼「神奇」。