C#在结构中使用整数对列表进行排序

时间:2013-06-23 19:48:22

标签: c# list sorting struct

你好我一直坐在这个问题上,在尝试学习C#时进行训练。我正在制作一个包含4个变量的列表,然后尝试按照其中一个变量对它们进行排序,已售出。 我使用结构来生成带有变量的列表,然后使用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++;
}

1 个答案:

答案 0 :(得分: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));