小编nis*_*sen的帖子

如何以最有效的方式返回 List<int> 中两个最高值的总和?C#

我正在尝试通过预先编写的测试,重点关注性能。返回 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)

c# performance latency list low-latency

3
推荐指数
1
解决办法
718
查看次数

标签 统计

c# ×1

latency ×1

list ×1

low-latency ×1

performance ×1