c# - 显示两个最大的 N 个数字 c#

标签 c# console numbers highest

我有一个问题,我想知道如何在控制台上显示 N 个输入数字中最大的 2 个?我正在做这样的事情:

Console.WriteLine("Enter the weight of the fish:");
if(decimal.TryParse(Console.ReadLine(), out _fishWeight))
{
    if (_fishWeight > _highest2)
    {
        _highest = _fishWeight;
        if (_fishWeight < _highest1)
        {
            _highest = _fishWeight;
        }
    }       
} 

但它不起作用。它只向我显示 _highest1,但不显示其他 _highest...

如果有人能帮助我,我会很高兴!

最佳答案

你想要更像的东西

if (_fishweight > _highest)
{
    _highest2 = _highest;
    _highest = _fishweight;
}
else if(_fishweight > _highest2)
{
    _highest2 = _fishweight;
}

或者,如果您想要更灵活的排行榜

// declare something like...

    private List<int> _leaderboard = new List<int>();
    private readonly int _leaderboardCount = 2;

// then update it like...    
    _leaderboard.Add(_fishweight);
    _leaderboard = _leaderboard.OrderByDescending(v => v).Take(_leaderboardCount).ToList();

现在您已经获得了前 2 名,但如果您愿意,稍后您可以轻松地将其更改为前 10 名。

关于c# - 显示两个最大的 N 个数字 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146040/

相关文章:

c# $ 资源中的字符串

c# - 如果调用 base,为什么不在 WPF 中重新声明 DataContext 属性

c - 宏中字符串和数字的混合

linux - 获取指定端口的连接数

c# - 将表单添加到流布局面板

c# - 关于使用Hadoop.WebHDFSClient时文件创建的403,尽管能够在HDFS中创建文件夹

javascript - 有没有办法阻止 Javascript 命令在控制台中执行?

assembly 控制台暂停

c# - 如何在 C# 的方法中将引用作为参数传递

numbers - 如何通过按位运算获得整数的第N位?