我想返回一个集合加上一个值。目前我正在使用一个字段来创建一个新列表,向列表中添加一个值,然后返回结果。有没有办法用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;
}
}
答案 0 :(得分:3)
您可以改为使用collection initializer语法:
public List<ChargeDetail> ChargeBreakdown
{
get
{
return new List<ChargeDetail>(_chargeBreakdown) {PrimaryChargeDetail};
}
}
答案 1 :(得分:1)
如果您将属性类型更改为IEnumerable<ChargeDetail>
,则可以执行以下操作:
public IEnumerable<ChargeDetail> ChareBreakdown
{
get { return _chargeBreakdown.Concat(new[] { PrimaryChargeDetail }); }
}
根据客户端如何使用该类(例如,如果他们只是遍历集合),这可能更简单。如果他们需要操纵列表,他们总是可以调用ToList
。