2013-06-23 2 views
-1

Привет, ive сидел с этой проблемой сейчас для тренировочного упражнения, пытаясь изучить C#. Я делаю список с 4 вариантами, а затем пытаюсь сортировать их после одного из них, Продано. Im используя структуру, чтобы сделать список с variabels, а затем используйте цикл while, чтобы заполнить его. Я могу получить его, чтобы написать список, и все это там, я просто не могу его сортировать. Ive пытался использовать list.sort, но я не могу заставить его принять команду. Структура выглядит следующим образом.C# Сортировка списка с целым числом внутри структуры

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

И список и время цикла.

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

Enumerable.OrderBy Попробуйте использовать:

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

Кроме того, необходимо добавить using System.Linq; в верхней части файла.

В качестве альтернативы, вы можете также использовать Array.Sort:

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

Примечание: Он будет включать 'System.Linq' имен. –

+0

@DaveZych True. –

+0

Спасибо, много работает как шарм! не смог найти System.Linq так, как использовал Array.Sort :) – Rasse992