我如何给相同等级的学生分数?

本文关键字: | 更新日期: 2023-09-27 17:54:03

这是我目前拥有的代码,当学生的分数相同时,他们会得到不同的排名这不是我想要的

class Program
{
    static void Main(string[] args)
    { 
        using (var db = new SchoolEntities())
        {
            int rank= 0;
            var query = db.ScoreSummaries
                .OrderByDescending(x => x.TotalScore).ToList();
            foreach (var item in query)
            {
                rank+= 1;
                Console.WriteLine("{0},{1},{2}", item.TransactionID, item.TotalScore, rank);
            }
            Console.WriteLine("Pls press any key to exit");
            Console.ReadKey();
        }
    }

我的结果如下,注意前两个记录是相同的,但有不同的排名。我希望两条记录的秩都是1,下一条记录的秩是3。如有任何建议,不胜感激

TRANS01,92,1
TRANS01,92,2
TRANS01,88,3
TRANS01,85,4
TRANS01,79,5
Pls press any key to exit

我如何给相同等级的学生分数?

试试这样

        int rank= 0;
        int lastScore = 0;
        var query = db.ScoreSummaries
            .OrderByDescending(x => x.TotalScore).ToList();
        foreach (var item in query)
        {
            if (lastScore > item.TotalScore)
                rank++;
            lastScore = item.TotalScore;
            Console.WriteLine("{0},{1},{2}", item.TransactionID, item.TotalScore, rank);
        }

我的做法是。保存当前分数到新变量

 static void Main(string[] args)
    { 
        using (var 
db = new SchoolEntities())
        {
            double currentScore = 0;
            int rank= 0;
            int savedRank;
        var query = db.ScoreSummaries
            .OrderByDescending(x => x.TotalScore).ToList();
        foreach (var item in query)
        {
      rank+= 1;
      if(item.TotalScore == current score)
       {
        savedRank = savedRank
       }
       else
       {
         savedrank = rank;
        }
            Console.WriteLine("{0},{1},{2}", item.TransactionID, item.TotalScore, savedrank);
            currentScore = item.totalScore;
            }
            Console.WriteLine("Pls press any key to exit");
            Console.ReadKey();
        }
    }

我假设这是某个类的赋值。

您正在尝试跟踪学生的当前排名,以及您已经通过的学生总数。要做到这一点,您需要在每个变量中跟踪它们,并在适当的时候修改它们。

你通过的学生数量每次都可以增加,就像你的排名变量目前是;变量current_rank需要单独递增(可能基于前一个学生的成绩,提示,提示)。

相关文章:
  • 没有找到相关文章