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

本文关键字:列表 排序 整数 结构 | 更新日期: 2023-09-27 18:19:31

你好,我在学习C#时一直在处理这个问题。我列出了一个有4个变量的列表,然后试着按照其中一个Sold对它们进行排序。我使用一个结构来制作带有变量的列表,然后使用while循环来填充它。我可以让它写出清单,但它就在那里,我就是无法让它排序。我试过使用list.sort,但我无法让它接受命令。结构如下所示。

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

以及list和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++;
}

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

尝试使用Enumerable.OrderBy:

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

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

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

Array.Sort(salesList, (a, b) => a.Sold.CompareTo(b.Sold));