C# Linq获取组的Max()值并将其分配给该组
这就是我所拥有和工作的C# Linq获取组的Max()值并将其分配给该组,c#,linq,collections,grouping,variable-assignment,C#,Linq,Collections,Grouping,Variable Assignment,这就是我所拥有和工作的 foreach (var group in groupCollection) { int maxValue = group.Max(x => { int value = 0; if (Int32.TryParse(x[index1].ToString(), out value)) return value;
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是一个列表
尝试以下方法:
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的强大功能,并解释了你如何使用“{}”来做多种事情。