在 C# 中使用 linq 或 lambda 表达式返回一个集合加上一个值

发布于 2024-08-27 16:47:57 字数 498 浏览 6 评论 0原文

我想返回一个集合加上一个值。目前,我正在使用一个字段创建一个新列表,向列表中添加一个值,然后返回结果。有没有办法用 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;
    }
}

I'd like to return a collection plus a single value. Presently I am using a field to create a new list adding a value to the list and then returning the result. Is there a way to do this with a linq or lambda expression?

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;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深海蓝天 2024-09-03 16:47:57

您可以使用 集合初始值设定项 语法代替:

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

You could use a collection initializer syntax instead:

public List<ChargeDetail> ChargeBreakdown
{
    get
    {
        return new List<ChargeDetail>(_chargeBreakdown) {PrimaryChargeDetail};
    }
}
如果没有你 2024-09-03 16:47:57

如果将属性类型更改为 IEnumerable,您可以执行以下操作:

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

这可能会更简单,具体取决于客户端如何使用该类(例如,如果他们只是遍历集合)。如果需要操作列表,他们始终可以调用 ToList

If you change the property type to IEnumerable<ChargeDetail> you could do:

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

Which could be simpler depending on how clients use the class (for example if they just iterate through the collection). They could always call ToList if they need to manipulate a list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文