-1

您好,我在尝试学习 C# 时一直在处理这个问题。我正在制作一个包含 4 个变量的列表,然后尝试在其中一个变量 Sold 之后对它们进行排序。我使用一个结构来制作带有变量的列表,然后使用一个while循环来填充它。我可以让它写出列表及其所有内容,我只是无法对其进行排序。我试过使用 list.sort 但我不能让它接受命令。结构如下。

Public struct Sale
{
    public string Name;
    public decimal Personalnumber;
    public string District;
    public int Sold;
}

还有列表和while循环。

Console.WriteLine("Press Enter to start");
Console.ReadLine();
Sale[] saleslist = new Sale[8]; //skapar en lista

int i = 0;

while (i < 8)
{
    Console.WriteLine("Enter Name");
    saleslist[i].Name = Console.ReadLine(); //indata namn
    Console.WriteLine("Enter Personalnumber");
    saleslist[i].Personalnumber = decimal.Parse(Console.ReadLine());//indata personnummer
    Console.WriteLine("Enter District");
    saleslist[i].District = Console.ReadLine();//indata distrikt
    Console.WriteLine("Enter amount sold");
    saleslist[i].Sold = int.Parse(Console.ReadLine()); //indata antal sålda
    Console.WriteLine("Press Enter to continue to next person"); /* tryck enter för att gå vidare*/
    i++;
}
4

1 回答 1

4

尝试使用Enumerable.OrderBy

salesList = salesList.OrderBy(n => n.Sold).ToArray();

您还需要using System.Linq;在文件顶部添加一个。

或者,您也可以使用Array.Sort

Array.Sort(salesList, (a, b) => a.Sold.CompareTo(b.Sold));
于 2013-06-23T19:50:04.027 回答