Итак, у меня есть небольшой кошмар, пытающийся построить запрос, хотя это действительно не должно быть так сложно.Linq Query to Group by and Sum в новый список
У меня есть класс visitItem
public class visitItem
{
public int visitId {get; set;}
public int contactId {get; set;}
public int locationId {get; set;}
public DateTime FirstSeen {get; set;}
public DateTime LastSeen {get; set;}
public double Duration {get; set;}
}
В основном я посетить дату истории в формате JSON, который я десериализации к списку visitItem
и сформировать несколько различных диаграмм из данных.
То, что я хочу сделать, это создать новый список из основного списка, где я выбрать конкретный месяц, и полученный список теперь сгруппирован по ContactId и продолжительность суммируется:
List<visitItem> totalDurations = visits
.Where(x => x.FirstSeen.ToString("MM") == month)......
Так который выбирает соответствующий месяц данных, а затем я хочу список, чтобы быть похожим:
contactId duration
1 10
2 5
3 5
4 20
вместо:
contactId duration
1 5
1 5
2 5
3 5
4 10
4 10
Как я могу это достичь?
Почему вы исполнительское строковые преобразования на всех? Разумеется, использование 'FirstSeen.Month' было бы проще ... Во всяком случае, вы не объяснили, почему * вы хотите получить первый вывод или какие входные данные ... в настоящее время вы только что сказали, что хотите, чтобы это было вместо X из Y, что дает нам очень мало контекста, с помощью которого можно помочь yuo ... –
Ах - после переформатирования вопроса это имеет больше смысла. Пожалуйста, позаботьтесь, чтобы просмотреть вопрос, прежде чем публиковать его, чтобы убедиться, что это действительно имеет смысл. –
Затем вы * говорите *, что вы сгруппировали контакт, но вы вообще не показали эту часть запроса, что опять-таки затрудняет помощь. В идеале, предоставить короткую, но полную программу, демонстрирующую проблему ... –