Всем привет, помогите пожалуйста, у меня есть лист который содержит

в себе класс, а в классе 2 публичные переменные типа string и int, как мне получить номер класса в листе у которого наибольшее значение int?

23 ответов

15 просмотров

Linq запросом можно

Человек не может придумать как циклом пройтись по своему списку и найти макс значение, а вы тут со своим Linq пугаете... Кстати, а можете посоветовать нормальный источник знаний, где можно поизучать логику и самое главное потренироваться

Перебрать List?

ᅠᅠᅠ- Автор вопроса

Я знаю, что циклом можно, ищу более оптимальное решение, через linq пробовал, но что-то не получается

int maxValueIterator=-1; for(int i=0; i<myList.Count; i++) { if(myList[i] > maxValue) maxValueIterator = i; }

Если прямо самый оптимальный, то сразу max хранить как поле класса и по мере вставки в List обновлять. Но надо понимать, а стоит ли игра свеч.

result = FirstOrDefault(i => i. Value >= MaxValue)

Я сделал LinkedList для часто изменяющейся коллекции, которая почти никогда не перебирается. Мне кажется или конкретно это бред? Такие списки есть на 216 объектах

ᅠᅠᅠ- Автор вопроса

я написал строчку, но консоль выдаёт ошибку, как правильно оформить?

честно, я не понимаю что это за оборот, не встречал такой. ClassList это твой класс?

ᅠᅠᅠ- Автор вопроса

да, я переименовал, чтобы более понятно было с неймингом

можно еще раз задачу. у тебя локальная переменная id - тебе нужен конкретный экземпляр класса с максимальным значением intScore или просто само значение intScore? в ClassListe у тебя список значений или 1 поле intScore ?

ᅠᅠᅠ- Автор вопроса

локальная переменная id должна получить номер класса по списку, у которого переменная intScore наибольшая. ClassList содержит в себе 2 переменные одна типа string, другая int т.е переменная intScore. В консоле выдаёт ошибку, но я что-то не очень понимаю, что делать.

Это значит, что нет информации как сравнивать для определения максимума

Добавь в Max(x=> x.intScore)

IDE хочет, чтобы ты свой класс сделал сравниваемым, то есть реализовать IComparable (чтобы было что с чем сравнивать). Если тебе это ни о чем не говорит, просто берешь свой список, где лежат твои классы ClassList и тупо ищешь, что тебе надо, обычная минимаксная задачка. Хранить значение id как поле класса - на мой взгляд узкое решение, а что будет, если ты удалишь экземпляр с максимальным значением score из списка, как обновить id. возвращаемся к перебору.

ᅠᅠᅠ- Автор вопроса

спасибо, это помогло) только он берет самое большое значение intScore, а не номер класса в котором это наибольшее значение, как можно получить именно индекс?

Легче перебирать чем искать индекс через Linq, ты должен понимать что Max делает также линейный перебор элементов

А сколько элементов в списке будет?

ᅠᅠᅠ- Автор вопроса

ладно, тогда перебором сделаю

ᅠᅠᅠ- Автор вопроса

+- 40

int maxValueIterator=-1; for(int i=0; i<myList.Count; i++) { if(myList[i].value > maxValue) maxValueIterator = i; }

ᅠᅠᅠ- Автор вопроса

спасибо)

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта