NoobisCoding Ответов: 2

Как мне сортировать предметы в моем классе?


У меня есть студенты в моем классе(я имею в виду класс c#, конечно), каждый студент получил свое собственное значение балла от экзамена.
Я создал список и добавил туда студентов + баллы. Я составил свой список лучших учеников.
Но сейчас я хочу разобраться со своими учениками:
1. нисходящая зависимость от точек
- Отметка-50 баллов
- Дэвид-40 р
- Рональд - 10 р (просто пример)
2. в алфавитном порядке

как будут выглядеть эти линии?


Что я уже пробовал:

Я пробовал что-то вроде: var result = students.OrderByDescending(??? =&ГТ; ???).Список();
или как: Student. Max (); -- это выглядит великолепно, но C# не понимает, что я хочу использовать в качестве шаблона заказа.. конечно :(

NotPolitcallyCorrect

Вероятно, это будет зависеть от вашего фактического кода, а не от того, что у вас есть здесь, но что-то вроде var result = students.OrderByDescending(ы =&ГТ; с. Очки)
должно работать на очки

NoobisCoding

очень хороший момент, должен работать, но не работает :( я знаю, что синтаксис будет чем-то вроде студенческого порядка по убыванию и установлен в баллы, но программа не хочет его принимать, хотя ошибки нет.

NotPolitcallyCorrect

"должно работать, но не работает", - да, полное предположение с моей стороны. Парень, которого мы наняли, чтобы он следил за вами и устанавливал камеры повсюду, чтобы мы могли видеть ваш код, был уволен, потому что он не установил камеру, глядя через ваше плечо, чтобы мы могли видеть ваш настоящий код. И "не хочет принимать это, хотя нет никакой ошибки" не имеет никакого смысла.

2 Ответов

Рейтинг:
6

Karthik_Mahalingam

попробовать это

var result = students.OrderByDescending(k => k.points).ThenBy(k => k.Name).ToList();

относиться Методы thenby[^]


Рейтинг:
13

OriginalGriff

Попробуй:

var result = students.OrderByDescending(s => s.Mark);

И:
var result = students.OrderByDescending(s => s.Name);


NoobisCoding

Не работает : (это именно то, что я пробовал, но в программе ничего не появляется..

Я на самом деле получаю его работу, написав условия .. если студент 1. points > студент 2 Points и т. д.. для этого потребовалось 50 строк :D но, возможно, мне просто не хватает какого-либо метода, определенного для использования этого orderBy, но когда я нажимаю на него, он становится синим, нет лампочки visual studio, чтобы предупредить меня или предложить мне что-либо, нет красного подчеркивания .. Я действительно хочу, чтобы он работал по вашему методу :( может быть, мне чего-то не хватает в моем определении класса?

OriginalGriff

Как я мог сказать, не зная определения вашего класса?

NoobisCoding

это хороший момент :D

ученик класса
{
публичное строковое имя;
публичная строка фамилия;
публичные двойные баллы;

NoobisCoding

static void Main (string[] args)
Студент st1 = новый студент ("Питер", " Смит");
st1. очки = 5;

Студент st2 = новый студент ("Мартин", " таблица");
st2. очки = 25;

Студент st3 = новый студент ("Oto", " McArthur");
st3. очки = 25;

List & lt;student> students = новый список & lt;student>();
студенты.Добавить (st1);
студенты.Добавить (st2);
студенты.Добавить (st3);

NoobisCoding

и конечно же: публичный студент (строковое имя, строковая фамилия) находится выше