【问题标题】:Linq Get the Max() Value of a Group and assign it to that groupLinq 获取组的 Max() 值并将其分配给该组
【发布时间】:2020-04-13 20:48:27
【问题描述】:

这就是我所拥有和工作的。

foreach (var group in groupCollection)
        {
            int maxValue = group.Max(x => {
                int value = 0;
                if (Int32.TryParse(x[index1].ToString(), out value))
                    return value;
                return value;
            }) ;
            foreach (var row in group)
            {
                row[index2] = maxValue;
            }
        }

但我想知道是否有办法简化这一点: 以下代码仅分配每个列表已有的内容 不是最大值。

groupCollection.ForEach(x => x.Max(y=> {
            int value = 0; 
            if(Int32.TryParse(y[index1].ToString(), out value))
                y[index2] = value;
            return value;
            }));

请记住,groupCollection 是 List<List<List<object>>>

【问题讨论】:

    标签: c# linq collections grouping variable-assignment


    【解决方案1】:

    试试这个:

    groupCollection.ForEach(x => {
        int maxValue = x.Max(y =>
            Int32.TryParse(y[index1].ToString(), out var value) ? value : 0);
        x.ForEach(y => y[index2] = maxValue);
        });
    

    【讨论】:

    • 是的,这很有效,非常感谢,我很欣赏您简化 TryParse 语句的方式,这让我了解了 linq 的强大功能,并解释了您如何使用“{}”做多件事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2017-11-29
    • 1970-01-01
    • 2021-08-04
    相关资源
    最近更新 更多