向用户询问他要分配多少卖家。
为要分配的每个卖方获取卖方的名称,身份证,城市以及他卖出了多少苹果。
根据售出的苹果数量创建4个等级。在50个苹果下排名1,在50-99个苹果之间排名2,在100-199个苹果之间排名3,在199个苹果之间排名4。
分配了所有卖方后,每个人都按照他们卖出的苹果数量从低到高排序。
打印出每个卖家的信息(姓名,身份证,城市,出售的苹果)以及他们所在的级别以及同一级别有多少个卖家。
示例:
name: daniel
id: 18886
city: chicago
apples sold: 30
1 seller have reached level 1: under 50 apples
name: elno
id: 18843
city: chicago
apples sold: 212
name: noel
id: 1567
city: chicago
apples sold: 230
2 seller have reached level 4: over 199 apples
现在这是我的代码的样子,我只是不知道如何在控制台上写出相应的内容
public class Seller
{
public string Name { get; set; }
public int Id { get; set; }
public string City { get; set; }
public int Apples { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi and Welcome to The Garden!");
Console.WriteLine("How many sellers would u like to assign?");
int Assign = int.Parse(Console.ReadLine());
Seller[] NewSeller = new Seller[Assign];
for (int i = 0; i < Assign; i++)
{
NewSeller[i] = new Seller();
Console.WriteLine("______________________________");
Console.Write("Enter name for seller" + i + "\nName: ");
NewSeller[i].Name = Console.ReadLine();
Console.Write("Enter id for seller " + i + "\nID; ");
NewSeller[i].Id = int.Parse(Console.ReadLine());
Console.Write("Enter city for seller " + i + "\nCity: ");
NewSeller[i].City = Console.ReadLine();
Console.Write("Enter apples sold for seller " + i + "\nApples: ");
NewSeller[i].Apples = int.Parse(Console.ReadLine());
}
for (int i = 0; i < Assign; i++)
{
Console.WriteLine("__________________________________________________________");
Console.WriteLine("| Seller {0} |" , i);
Console.WriteLine("|--------------");
Console.WriteLine("| Name: {0}", NewSeller[i].Name);
Console.WriteLine("| ID: {0}", NewSeller[i].Id);
Console.WriteLine("| City: {0}", NewSeller[i].City);
Console.WriteLine("| Apples sold: {0}", NewSeller[i].Apples);
Console.WriteLine("__________________________________________________________");
}
}
}
答案 0 :(得分:0)
这看起来像是一项家庭作业:)
对集合进行排序的最简单方法是使用LINQ,通过Lambda表达式:
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderby?view=netframework-4.8
我还建议使用字符串插值,因为它更简洁,更容易理解:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
对于您而言,您将执行以下操作:
public class Seller
{
public string Name { get; set; }
public int Id { get; set; }
public string City { get; set; }
public int Apples { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi and Welcome to The Garden!");
Console.WriteLine("How many sellers would u like to assign?");
int Assign = int.Parse(Console.ReadLine());
Seller[] NewSeller = new Seller[Assign];
for (int i = 0; i < Assign; i++)
{
NewSeller[i] = new Seller();
Console.WriteLine("______________________________");
Console.Write($"Enter name for seller {i}: ");
NewSeller[i].Name = Console.ReadLine();
Console.Write($"Enter id for seller {i}: ");
NewSeller[i].Id = int.Parse(Console.ReadLine());
Console.Write($"Enter city for seller {i}: ");
NewSeller[i].City = Console.ReadLine();
Console.Write($"Enter apples sold for seller {i}: ");
NewSeller[i].Apples = int.Parse(Console.ReadLine());
}
//default sorting is ascending, so low to high. use OrderByDescending when you need high to low
Seller[] sortedList = NewSeller.OrderBy(s => s.Apples).ToArray();
for (int i = 0; i < sortedList.Length; i++)
{
Seller currentSeller = sortedList[i];
Console.WriteLine("__________________________________________________________");
Console.WriteLine($"| Seller {i} |");
Console.WriteLine("|--------------");
Console.WriteLine($"| Name: {currentSeller.Name}");
Console.WriteLine($"| ID: {currentSeller.Id}");
Console.WriteLine($"| City: {currentSeller.City}");
Console.WriteLine($"| Apples sold: {currentSeller.Apples}");
Console.WriteLine("__________________________________________________________");
}
}
}
答案 1 :(得分:0)
您可以使用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("__________________________________________________________");
}