オブジェクトのプロパティに基づいてグループ化したいリストがあります。しかし、グループ化されたリストを出力すると、値を割り当てなくても、オブジェクト内のすべてのプロパティでグループ化されるようです。割り当てられていない値のデフォルト値は同じである必要があるため、グループ化する必要があります。
匿名型(new { x.SentDate.Year }
)などを使用してこれを解決できることはわかっていますが、より動的にするために、PopulateMessagesメソッドのパラメーターとしてGroupBy関数を渡すことをお勧めします。
public void PopulateMessages()
{
List<Message> Messages = new DataRepository().GetMessages();
Func<Message, GroupProperties> func = x => new GroupProperties
{
Year = x.SentDate.Year
};
IEnumerable<IGrouping<GroupProperties, Message>> GroupedMessages = Messages.OrderByDescending( x => x.SentDate )
.GroupBy( func )
.ToList();
}
public class GroupProperties
{
public int Year { get; set; }
public int Month { get; set; }
public int Day { get; set; }
}