Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Агрегированные значения по полям обьектов в List 
V
    Опции темы
Stratus
Дата 26.1.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



Здравствуйте 

Каким образом можно подсчитать агрегированные значения по полям обьектов List?

Код примерно следующий:
Код


List<DataPoint> YDataPoints = new List<DataPoint>();

YDataPoints.Add(new DataPoint(Val));

//вот такого сделать не получается
//YDataPoints.GetRange(1, 10).Value.Max();
//Надо найти максимум в определенном диаппазоне обьектов по полю Val
//Как это сделать?
//Причем не хочется задействовать циклы... 

class DataPoint
    {
        private float _Val;

        public DataPoint(float Val)
        {
            _Val = Val;
        }
        
        public float Val { get { return _Val; } }
    }



Это сообщение отредактировал(а) Stratus - 26.1.2011, 11:15
PM MAIL   Вверх
KelTron
Дата 26.1.2011, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



От 10 до 20 включительно:
Код

float max = YDataPoints.Skip(9).Take(11).Max(p => p.Val);



--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Stratus
Дата 27.1.2011, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



Цитата(KelTron @ 26.1.2011,  12:37)
От 10 до 20 включительно:
Код

float max = YDataPoints.Skip(9).Take(11).Max(p => p.Val);

Ага помогло спасибо, но все таки лучше GetRange
PM MAIL   Вверх
Kaerus
Дата 27.1.2011, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WPF'er
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 3.9.2010

Репутация: нет
Всего: 1



Цитата(Stratus @  27.1.2011,  00:12 Найти цитируемый пост)
но все таки лучше GetRange

GetRange создаст в память обрезанную копию списка, а это лишнее выделение памяти. Linq наоборот отрабатывает данные поэлементно, не копируя данные целиком.
Хотя для маленьких массивов разница конечно будет незаметна.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.