我正在尝试通过预先编写的测试,重点关注性能。返回 int 列表中两个最大数字之和的最有效方法是什么?我已经尝试了以下方法,根据测试,当涉及较大的列表时,它不够快:
1. list.Sort();
list.Reverse();
return list[0] + list[1];
2. return list.OrderByDescending(num => num).FirstOrDefault() + list.OrderByDescending(num => num).Skip(1).FirstOrDefault();
3. var secondHighest = list.Distinct()
.OrderByDescending(i => i)
.Skip(1)
.First();
return list.Max() + secondHighest;
Run Code Online (Sandbox Code Playgroud)