2010-04-07 91 views
3

我想返回一個集合加單個值。目前,我正在使用一個字段來創建一個新列表,將值添加到列表中,然後返回結果。有沒有辦法用linq或lambda表達式來做到這一點?在C#中使用linq或lambda表達式返回一個集合加單個值

private List<ChargeDetail> _chargeBreakdown 
    = new List<ChargeDetail>(); 

public ChargeDetail PrimaryChargeDetail { get; set; } 

public List<ChargeDetail> ChargeBreakdown 
{ 
    get 
    { 
     List<ChargeDetail> result = 
      new List<ChargeDetail>(_chargeBreakdown); 
     result.Add(PrimaryChargeDetail); 

     return result; 
    } 
} 
+1

什麼是「_chargeBreakdown」? – 2010-04-07 22:38:19

+0

您可能想要返回除列表以外的集合 - http://msdn.microsoft.com/en-us/library/ms182142%28VS.80%29.aspx – 2010-04-07 22:38:21

+0

@Reed添加了_chareBreakdown字段 – ahsteele 2010-04-07 22:39:28

回答

3

你可以使用一個collection initializer語法來代替:

public List<ChargeDetail> ChargeBreakdown 
{ 
    get 
    { 
     return new List<ChargeDetail>(_chargeBreakdown) {PrimaryChargeDetail}; 
    } 
} 
1

如果您更改的屬性類型IEnumerable<ChargeDetail>你可以這樣做:

public IEnumerable<ChargeDetail> ChareBreakdown 
{ 
    get { return _chargeBreakdown.Concat(new[] { PrimaryChargeDetail }); } 
} 

這可能取決於客戶端如何使用更簡單該類(例如,如果他們只是遍歷集合)。如果他們需要操作列表,他們總是可以調用ToList

相關問題