using System.Collections.Generic;
public static void Main()
List<User> userList = new List<User>();
userList.Add( new User { Rules = 1, Coupons = "C1", CouponId = 1, Priority = 1,Sum = 0 } );
userList.Add( new User { Rules = 2, Coupons = "C2", CouponId = 2, Priority = 3,Sum = 0 } );
userList.Add( new User { Rules = 3, Coupons = "C6", CouponId = 4, Priority = 2,Sum = 0 } );
userList.Add( new User { Rules = 4, Coupons = "C3", CouponId = 5, Priority = 4,Sum = 0 } );
userList.Add( new User { Rules = 5, Coupons = "C3", CouponId = 5, Priority = 5,Sum = 0 } );
userList.Add( new User { Rules = 6, Coupons = "C4", CouponId = 3, Priority = 6,Sum = 0 } );
userList.Add( new User { Rules = 7, Coupons = "C4", CouponId = 3, Priority = 7,Sum = 0 } );
userList.Add( new User { Rules = 8, Coupons = "C7", CouponId = 7, Priority = 8,Sum = 0 } );
userList.Add( new User { Rules = 9, Coupons = "C5", CouponId = 6, Priority = 9,Sum = 0 } );
userList.Add( new User { Rules = 10, Coupons = "C6", CouponId = 4, Priority = 10 ,Sum = 0 } );
userList.ForEach(o => o.Sum = userList.Where(k => k.CouponId == o.CouponId).Count());
userList = userList.OrderByDescending(k => k.Sum).ThenBy(n => n.CouponId).ToList();
Console.WriteLine("Rules : " + k.Rules + " Coupons : " + k.Coupons + " CouponId : " + k.CouponId + " Priority : " + k.Priority + " Sum : " + k.Sum)
public int Rules { get; set; }
public string Coupons { get; set; }
public int CouponId { get; set; }
public int Priority { get; set; }
public int Sum { get; set; }