Linq Получите максимальное () значение группы и назначьте ее этой группе - PullRequest
1 голос
/ 13 апреля 2020

Это то, что у меня есть и работает.

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

Но мне было интересно, есть ли способ упростить это: следующий код просто назначает то, что в каждом списке уже есть значение Max.

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

1 Ответ

1 голос
/ 14 апреля 2020

Попробуйте это:

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