Я разбираюсь в некоторых базовых вещах linq, но я не совсем уверен, как реализовать это.
рассмотрим простой объект, подобный этому
public class Movement
{
int areaId;
DateTime startTime;
DateTime endTime;
}
это движение какого-то предмета. startTime - время входа в область с помощью areaId. endTime - время, когда он покинул эту область.
У меня есть список этих для одного элемента в произвольном порядке. Для каждого areaId может быть много разных движений, и ни один из моментов времени не перекрывается.
List<Movement> items = getSomeMovements();
Мне дан интервал времени, определяемый малым временем и большим временем. Низкое время меньше, чем высокое время.
DateTime lowTime;
DateTime highTime;
Я хочу получить areaId, где элемент провел больше всего времени в течение этого интервала времени.
Я думаю, группа по областям, найти общее время в каждой и выбрать наибольшее общее количество. Не уверен, как это сделать с Linq, хотя. Я ценю любую помощь.