Вы можете использовать Linq, чтобы отсортировать продавца и получить детали уровня
//Sort the seller and get the Level details
var results = sellers.OrderBy(s => s.Apples)
.Select(x => new
{
x.Name,
x.Id,
x.City,
x.Apples,
Level = x.Apples < 50 ? 1 : x.Apples < 99 ? 2 : x.Apples < 199 ? 3 : 4,
LevelDetails = x.Apples < 50 ? "under 50" : x.Apples < 99 ? "over 50" : x.Apples < 199 ? "over 99" : "over 199"
});
//Iterate the sorted list
foreach (var result in results)
{
Console.WriteLine("__________________________________________________________");
Console.WriteLine("| Seller {0} |", results.ToList().IndexOf(result) + 1);
Console.WriteLine("|--------------");
Console.WriteLine("| Name: {0}", result.Name);
Console.WriteLine("| ID: {0}", result.Id);
Console.WriteLine("| City: {0}", result.City);
Console.WriteLine("| Apples sold: {0}", result.Apples);
Console.WriteLine("| {0} seller have reached level {1}: over {2} apples", results.Where(x=>x.Level==result.Level).Count(), result.Level, result.LevelDetails);
Console.WriteLine("__________________________________________________________");
}