这个问题已经在 SO 上以一种或另一种方式提出,但不是这样。我刚刚遇到了一个非常基本的问题,我正在寻找一个统计解决方案:-) 我得到了一个具有两个整数属性的对象列表。现在我想找到列表中所有对象的两个属性的最大值。
我想出了三个解决方案:
第一种方法:
int max = Math.Max(list.Max(elem => elem.Nr), list.Max(elem => elem.OtherNr));
第二种方法:
public int Max(List<Thing> list)
{
int maxNr = 0;
foreach (var elem in list)
{
if (elem.Nr > maxNr)
maxNr = elem.Nr;
if (elem.OtherNr > maxNr)
maxNr = elem.OtherNr;
}
return maxNr;
}
第三种方法是按两个属性进行排序,然后只取第一个条目并获取一个或另一个属性。
我想找到最快的方法来做到这一点。因此,在所有方法中,我喜欢帖子中的第二种方法(从性能的角度来看)。即使第一个较短,您也必须通过列表两次。
还有其他解决方案吗?