You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按姓名分组为列表对象的ValueToCalculate属性赋值

实现方案

可以通过分组查找+批量赋值的方式完成需求,以下是具体实现:

.NET 6+ 版本(支持MinBy)

var myObjects = new List<MyObject>(); // 你的集合实例

// 按FirstName和LastName分组,处理每组数据
foreach (var group in myObjects.GroupBy(obj => new { obj.FirstName, obj.LastName }))
{
    // 找到组内DateTime最小的对象的Value值
    var targetValue = group.MinBy(item => item.DateTime).Value;
    
    // 给组内所有对象的ValueToCalculate赋值
    foreach (var obj in group)
    {
        obj.ValueToCalculate = targetValue;
    }
}

.NET 5及以下版本(无MinBy时的替代写法)

如果你的项目不支持MinBy,可以用OrderBy配合First来替代:

var myObjects = new List<MyObject>(); // 你的集合实例

foreach (var group in myObjects.GroupBy(obj => new { obj.FirstName, obj.LastName }))
{
    // 先按DateTime升序排序,取第一个元素的Value
    var targetValue = group.OrderBy(item => item.DateTime).First().Value;
    
    foreach (var obj in group)
    {
        obj.ValueToCalculate = targetValue;
    }
}

关键说明

  • 分组键用匿名类型new { obj.FirstName, obj.LastName },确保同时匹配FirstName和LastName的对象被分到同一组。
  • 遍历分组时直接修改原对象的ValueToCalculate属性,因为MyObject是引用类型,修改会直接作用于原集合中的实例。

内容的提问来源于stack exchange,提问作者Stix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:45:37