C# list根据字段生成排名

需求分析,我们要根据一个变量来生成排名,变量数值相同则在同一名,名数则跳过,比如第一有两个,那就不会有第二名,直接到第三名

直接上代码

 public class fadsfsd
            {
    
    
                public int id {
    
     get; set; }
                public decimal Score {
    
     get; set; }
                public int Rank
                {
    
     get; set; }
            }
            static void Main(string[] args)
            {
    
    
                List<fadsfsd> fadsfsds = new List<fadsfsd>() {
    
    
                 new fadsfsd() {
    
     id = 1, Score = 10 },
                 new fadsfsd() {
    
     id = 2, Score = 19 },
                 new fadsfsd() {
    
     id = 3, Score = 10 },
                 new fadsfsd() {
    
     id = 4, Score = 8 },
                 new fadsfsd() {
    
     id = 5, Score = 8 },
                 new fadsfsd() {
    
     id = 6, Score = 7 },
                 new fadsfsd() {
    
     id = 7, Score = 5 },
                 new fadsfsd() {
    
     id = 8, Score = 10 }
             };
                var sorted = fadsfsds.OrderByDescending(x => x.Score).ToList();
                fadsfsds.ForEach(t =>
                {
    
    
                    t.Rank = sorted.FindIndex(s => s.Score == t.Score) + 1;
                });
           }

排序生成排名结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44442366/article/details/126475689