繁体   English   中英

根据C#中的对象列表中其他属性的值组合某个属性的值?

Combine the values of a certain property based on the value of a different property in a List of Objects in C#?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

目前,我有一个List<OrderModel> OrderModel是一个包含两个属性的类: OrderIdTotal 在这种情况下, OrderId不是唯一的。 我想结合OrderId匹配的Total属性的值。

我有一个解决方案,但是我想知道是否有更好的方法(就性能而言)来完成此任务。 这是我目前正在做的事情:

在填充List<OrderModel>对象时,我还将OrderId添加到List<long> 因此,现在我有两个列表。

foreach (var id in orderIdList.Distinct())
{
    var orders = orderModelList.Where(l => l.OrderId == id).ToList();
    if (orders.Count() > 1)
    {
        var firstOrder = orders.FirstOrDefault();
        orders.Remove(firstOrder);
        foreach (var order in orders)
        {
        firstOrder.Total += order.Total;
        orderModelList.Remove(order);                    
        }
     }
}
1 个回复

您正在版本中进行许多无用的枚举。 假设您有一个订单列表,则可以使用GroupBy进行大多数过滤:

var orderModelList = orders.GroupBy(o => o.Id)
    .Select(group => new OrderModel
    {
        Id = group.Key,
        Total = group.Sum(o => o.Total)
    })
    .ToList();
1 C#根据某个属性的值将列表拆分为子列表?

我有一个事件列表,每个事件都有一个datetime属性。 我需要按年将列表拆分为子列表。 诀窍是,我的事件列表是从数据库中提取的,可能会发生变化,所以我不能只对这些年份进行硬编码并将事件排序到正确的年份。 有没有办法可以将我的主要事件列表拆分为子列表,以便在每个子列表中,每个事件都在同一年 ...

2014-10-15 13:08:28 2 23740   c#/ list
2 根据属性c#拆分对象列表

myClass结构: 我有一个以上类List&lt;myClass&gt;的列表,所有这些List&lt;myClass&gt;均由ActivityTime排序。 我需要拆分上面的列表,并获取List&lt;List&lt;myClass&gt;&gt;这样,如果两个连续的Acti ...

2016-06-27 06:17:36 3 100   c#
3 如何对列表排序 C#中具有一定条件的对象按属性划分

我在我们的应用程序中有这个类,由驱动程序使用。 当驾驶员打开应用程序时,它将显示当前的日程安排以及客户的接送时间和目的地。 现在,我想按最接近的PickUpTime筛选此列表(假设他在上午11点打开应用,并且安排了上午10.30和中午12点的取件,它应该返回10.30 AM取件对象的详 ...

6 C#如何按具有相同属性值的对象对List进行分组

假设我有以下对象 并且我有一个List&lt;DepartmentSchema&gt; ,结果如下: 我想对具有相同父值和子值的所有对象进行分组,分组后的结果是以下列表 我成功使用IGrouping =&gt; departmentSchema.GroupBy(x = ...

2018-03-24 14:29:23 1 914   c#/ linq
7 C#自定义列表基于属性的重复值

我有一个自定义列表类,可以这样说: 现在我要像这样添加记录, 我想要的是 ? 我想对Public Fruit Class进行更改,以检查自定义列表中的水果是否已经具有相同的权重,然后忽略它并继续,例如不要将其添加到列表中。 我宁愿不更改foreach循环逻辑就这样做 ...

2013-11-05 14:09:34 3 205   c#
8 C#基于另一个属性值的不同属性

我正在写一个消息处理器。 处理器通过数据流接收消息。 消息可以具有不同的类型,但是所有类型都具有一些共同的属性,例如长度,校验和等。此外,每种类型的消息也具有其自己的属性。 为了实现它,我正在考虑创建一个包含公共属性的类(比如消息类),并从消息类继承为每种消息类型创建单独的类。 首先 ...

9 根据属性值检索列表中的不同对象

道歉, 努力挣扎着解决这个问题。 我需要基于“答案”的属性值和EmployeeNumber的属性值获取以下列表中的不同值 我从数据库中检索了值 我的清单的结果应该是这样的 我该如何实现? 我从以下var list1 = usersDevicesused.D ...

10 根据特定值更改c#中list的值

我有以下提到的清单result ,其中包含东部latestResult时间的量,我想获取有关山区标准时间的latestResult清单量数据 任何人都可以建议优化的代码来更新列表值 我正在尝试根据时区差异分配值,假设时区差异为3小时,我在代码中将diffvol变量分配给3 如 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM