-1

こんにちは、C# を学習しようとしている間、トレーニング演習のためにこの問題に取り組んでいます。4 つのバリアベルでリストを作成し、そのうちの 1 つ、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;また、ファイルの先頭にa を追加する必要があります。

または、次を使用することもできますArray.Sort

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