Я хочу сгруппировать данные по месяцам (пример: январь 2014, февраль 2014). Это не проблема, но теперь у меня есть иногда более одной записи каждого дня, поэтому мне приходится группировать данные еще раз по дате.Публикация статей по месяцам и по дате
Вот пример:
var lst = [{02/01/2014, 5}, {02/01/2014, 6}, {02/01/2014, 3}, {01/01/2014, 5}, {01/02/2014, 5}]
==> группы по месяцу (февраль, январь)
[{02/01/2014, 5}, {02/01/2014, 6}, {02/01/2014, 3}], [{01/01/2014, 5}, {01/02/2014, 5}]
==> группы в день (1 февраля, 1 января, 2 . января)
[{02/01/2014, 4,67}], [{01/01/2014, 5}], [{01/02/2014, 5}]
Вот код для моего KeyedL IST:
public class KeyedList<TKey, TItem> : List<TItem>
{
public TKey Key { protected set; get; }
public IEnumerable<TItem> Items { protected set; get; }
public KeyedList(TKey key, IEnumerable<TItem> items) : base(items)
{
Key = key;
Items = items;
}
public KeyedList(IGrouping<TKey, TItem> grouping)
: base(grouping)
{
Key = grouping.Key;
Items = grouping;
}
}
Для меня можно сгруппировать значения по месяцам:
var groupedItems = from item in MyItems
orderby Convert.ToDateTime(item.Date) descending,
group item by Convert.ToDateTime(item.Date).ToString("MMMM) into items
select new KeyedList<string, MyDataType>(items);
Но как я могу сделать вторую группировку в группу дни. Благодарю.
Ну, но мне нужны две группы. Одна группировка по месяцам и другая группировка по дням. Если я использую непосредственно элемент '' 'group item by item.Date в элементы' '', чем у меня есть только одна группировка. – atticus3000
В вашем примере не хватает дат, чтобы понять, что вы имеете в виду. Если вы хотите собрать свои результаты в «KeyedList», одной группы должно быть достаточно (только по дням?). –
Ну. Я хочу использовать первую группу по месяцам. У меня есть LongListSelector с заголовком и JumpList Style для перехода между месяцами. В этом месяце я хочу объединить записи с одного дня с одной записью. Таким образом, вторая группа группировалась по группам по месяцам. – atticus3000