Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2010, 10:17   #1
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию LINQ.. исполняется впервые)))

Здравствуйте, есть List в листе класс отображающий сущность бд, в нем несколько полей, каждый экземпляр сущности из списка сравнивается с другим объектом по нескольким полям, в результате сравнения формируется один критерий (int) по значению которого сравниваются сущности в списке, необходимо найти максимальную...

ну в принципе реализовано считается, сравнивается, ищется, только покоя не дает буржуйское слово LINQ вроде как это все можно сделать быстрее и проще (в данном случае быстрее и проще - более читаемо и меньше кода ). Что сделал в линку: отображение списка сущностей на список кортежей <критерий качества,ID> , методом Sort отсортировал по ключу эту последовательность... не, канеш работает, но во - первых хотелось бы найти максимальный элемент а не сортировать все (Max() возвращает только максимальное значение критерия.. которые мне на фиг не нужен!!! )
во - вторых расчет критерия от этого меньше не стал и выглядит точно так же как раньше только после => стоит, кажется я где то что то недопер...

Код:
 if (a.f1 != 0  && b.f1 != 0) {
                                    usabilityCurrent += (a.f1 == b.f1)?2:0;
                                } else {
                                    usabilityCurrent++;
                                }
то есть если поле равно нулю либо в эталонной либо в текущей сущности - криетерий++, если точно совпадает то +2, кода под рукой нет поэтому условие сейчас накидал и вот таких блоков там где то три-четыре штуки. Копал в сторону IComparable - так мало того что туда будет скопипастен этот же код.. так еще и придется тащить туда эталонную сущность.. что совсем не охото.. уф) мысли вслух закончились

итак:
1 - аналог функции Max из Linq которая вернет не только значение критерия сравнения а весь кортеж.
2 - каким образом еще решается сравнение по нескольким полям ? просто очень хочется заменить несколько однотипных блоков чем нибудь покороче и поизящней
Teksa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение DataTable из LINQ-запроса tavrocotaps Общие вопросы .NET 0 13.08.2010 14:43
проблема C# LINQ SQL neomichi Общие вопросы .NET 0 07.08.2010 17:26
LINQ + MySQL tavrocotaps Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 20.07.2010 17:21
впервые в Word 2007 marsa Microsoft Office Word 1 13.05.2009 16:50
столкнулся впервые с простым вопросом sava28 HTML и CSS 0 25.11.2008 22:50