Каков наилучший способ структурировать этот запрос - PullRequest
1 голос
/ 03 августа 2010

У меня есть IEnumerable коллекция объектов.У объектов есть поле LastedUpdated , которое является полем DateTime .

Я хочу отфильтровать коллекцию по заданной временной отметке, чтобы вернуть запись всбор с этой отметкой времени и «следующей записью» во времени (на основе этого поля), потому что затем я хочу, чтобы некоторый код сделал «diff» между двумя разными записями, чтобы показать, что изменилось.

Япытаясь найти лучший способ взять коллекцию и выполнить эту фильтрацию, возможно, используя LINQ

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 03 августа 2010

Как насчет этого?

var results = (from o in objects
  where o.lastupdated >= tstamp
  orderby o.lastupdated
  select o).Take(2);
0 голосов
/ 03 августа 2010

Это не самый эффективный способ, но если вы не считаете, что производительность - это проблема, я бы посчитал ее более ясной.

var objsByDate = objects.OrderBy(x => x.LastedUpdated).ToArray();
int matchIdx = Array.FindIndex(objsByDate, x => x.LastedUpdated == timestamp);

if (matchIdx >= 0)
{
    var match = recentObjects[matchIdx];
    var next = recentObjects[matchIdx + 1]; // assuming it exists
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...