powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ to Objects, обший вопрос.
6 сообщений из 6, страница 1 из 1
LINQ to Objects, обший вопрос.
    #38101963
FordSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго утра!

Подскажите пожалуйста с реализацией такого момента.

Есть класс SampleClass:
Код: c#
1.
2.
3.
4.
class SampleClass
{
public DateTime TimeStamp {get;set;}
}



Есть коллекция элементов типа SampleClass, добавляю туда 500 000 объектов типа SampleClass, упорядочных по свойству TimeStamp, от меньшего к большему.

Код: c#
1.
2.
List<SampleClass> coll = new List<SampleClass>();
coll.AddRange(...500 000 элементов);



Так вот, когда я вызываю методы Linq что то типа:

Код: c#
1.
2.
3.
4.
var fromStart = new DateTime(2013, 01, 08, 12, 00, 00);
var fromEnd = new  DateTime(2013, 01, 08, 13, 00, 00);

var intervals = coll.Where(s=> s.TimeStamp >= fromStart && s.TimeStamp <= fromEnd).ToList();



Верно ли я думаю что Linq побежит по все коллекции, что бы сравнить все 500 000 объектов?
И возможно ли ограничить Linq что бы он бежал не по всей коллекции а только по тому диапазону который был задан, ведь коллекция упорядочена от меньшего к большему.
...
Рейтинг: 0 / 0
LINQ to Objects, обший вопрос.
    #38101976
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FordSoftВерно ли я думаю что Linq побежит по все коллекции, что бы сравнить все 500 000 объектов?
Проверяется элементарно:
Код: c#
1.
2.
3.
4.
5.
6.
7.
var l = new[] { 1, 2, 3, 4, 5 };
var l1 = l.Where(n =>
{
  Console.WriteLine("Inside where: {0}", n);
  return n > 3;
});
l1.ToList().ForEach(Console.WriteLine);



FordSoftИ возможно ли ограничить Linq что бы он бежал не по всей коллекции а только по тому диапазону который был задан, ведь коллекция упорядочена от меньшего к большему.
См. Skip / SkipWhile .
...
Рейтинг: 0 / 0
LINQ to Objects, обший вопрос.
    #38101992
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FordSoft, метод Where перебирает всю последовательность. Раз ты знаешь что последовательность упорядочена, то вызывай последовательно SkipWhile/TakeWhile:
Код: c#
1.
var intervals = coll.SkipWhile(s => s.TimeStamp < fromStart).TakeWhile(s => s.TimeStamp <= fromEnd).ToList();
...
Рейтинг: 0 / 0
LINQ to Objects, обший вопрос.
    #38102037
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныПроверяется элементарно
Даже и проверять не надо, достаточно на глаз оценить скорость выполнения циклов.

http://codearticles.ru/Home/ArticleView/2205
...
Рейтинг: 0 / 0
LINQ to Objects, обший вопрос.
    #38102176
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСон Веры ПавловныПроверяется элементарно
Даже и проверять не надо, достаточно на глаз оценить скорость выполнения циклов.

http://codearticles.ru/Home/ArticleView/2205 Наш гениальный "пальцы веером глазомерщик" пользоваться объективными методами оценки производительности все никак не научится...
Но, глядишь, чуть-чуть почитает документацию, и "внезапно" откроет для себя TimeSpan или Stopwatch ...
...
Рейтинг: 0 / 0
LINQ to Objects, обший вопрос.
    #38102202
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvНаш гениальный "пальцы веером глазомерщик" пользоваться объективными методами оценки производительности все никак не научится...
"Наша неугомонная codemonkey", я "учился" пользоваться объективными методами оценки производительности, когда ты еще сопли по земле размазывал.

sphinx_mvНо, глядишь, чуть-чуть почитает документацию, и "внезапно" откроет для себя TimeSpan или Stopwatch ...
Это "открытие" мной было запосщено на этом форуме еще до твоего рождения: 5894645 , аж 7 июля 2008 года. Жги еще, времязамерятель
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ to Objects, обший вопрос.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]