公共类Person
{
公共字符串名称{;组;}
公众的DateTime创建{获得;组; }
}
公共类迈德特
{
公开名单<人>人{获得;组; }
公共指明MyDate()
{
人员=新的名单,其中,人物>();
}
}
我要显示像
按日期顺序人士日期日2015年5月28日进入了
的foreach(VAR人Model.Persons){
//显示person.Name
}
日期日2015年5月27日进入了
的foreach(VAR人Model.Persons){
//显示person.Name
}
日期日2015年5月26日进入了
的foreach(VAR人Model.Persons){
//显示person.Name
}
解决方案
您需要按整个天Person对象,所以让我们做的:
VAR RES = Model.Persons.OrderByDescending(P => p.Created)
.GroupBy(p值=> p.Created.ToShortDateString());
要在控制台上显示:
的foreach(在水库VAR项)
{
//日是同在一组条目的所有项目。
字符串groupDay = entry.First()Created.ToShortDateString()。
Console.WriteLine(groupDay);
//名单内的人在该组中的所有名称
的foreach(在入门者P)
{
Console.WriteLine(p.Name);
}
}
public class Person
{
public string Name {get; set;}
public DateTime Created { get; set; }
}
public class MyData
{
public List<Person> Persons {get; set; }
public MyDate()
{
Persons = new List<Person>();
}
}
I want to display persons ordered by date like
date entered in day 28.05.2015
foreach(var person in Model.Persons){
// display person.Name
}
date entered in day 27.05.2015
foreach(var person in Model.Persons){
// display person.Name
}
date entered in day 26.05.2015
foreach(var person in Model.Persons){
// display person.Name
}
解决方案
You need to group the Person objects by entire days, so let's do:
var res = Model.Persons.OrderByDescending(p => p.Created)
.GroupBy(p => p.Created.ToShortDateString());
To display them on the console:
foreach(var entry in res)
{
// Day is the same for all items in a group entry.
string groupDay = entry.First().Created.ToShortDateString();
Console.WriteLine(groupDay);
// list all names of persons in that group
foreach(Person p in entry)
{
Console.WriteLine(p.Name);
}
}