Список проблем сортировки - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть список программистов:

programmers.Add(new Programmer("Jake", 1.9, 2000));
programmers.Add(new Programmer("Richard", 1.0, 1300)); 

и мне нужно создать новый список отсортированных программистов этим value => 2000 / 1.9. (Вверх)

Я не могу понять, как разделить int на double и отсортировать programmers по этому результату. Не могли бы вы помочь мне, как это сделать?

Пока я пробовал:

var ProgrammersSorted = programmers.OrderBy((x,y) => x.DailyWage / y.Speed).ToList();

Класс программиста:

public class Programmer
{
    public string Name { get; private set; }
    public double Speed { get; private set; }
    public int DailyWage { get; private set; }

    public Project Project { get; private set; }

    public string ProjectName
    {
        get
        {
            return Project?.Name ?? "No project assigned";
        }
    }

    public Programmer(string name, double speed, int dailyWage)
    {
        Name = name;
        Speed = speed;
        DailyWage = dailyWage;
    }
}

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Пожалуйста, попробуйте ниже код, я думаю, что это решит вашу проблему.

        var programmers = new List<Programmer>
        {
         new Programmer("SS",12.3,2345),
         new Programmer("ADE",1.21,22345),
         new Programmer("AR",12.2,23445),
         new Programmer("NK",12.5,23455)
        };

        var progrmrs = programmers.OrderBy(t => t.DailyWage / t.Speed).ToList();
        Console.WriteLine("Name\t Speed\t DailyWage");
        foreach (var prgrm in progrmrs)
        {
            Console.WriteLine("{0}\t {1}\t {2}", prgrm.Name, prgrm.Speed, prgrm.DailyWage);
        }
0 голосов
/ 02 ноября 2018

Вы очень близки. Попробуйте это:

var programmersSorted = programmers.OrderBy(x => x.DailyWage / x.Speed).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...