C# 如何在Linq提取方法中使用order by和group by?
我有一个C# 如何在Linq提取方法中使用order by和group by?,c#,linq,C#,Linq,我有一个person列表,其中包含person有一个weight和一个age属性 Person.cs: public class Person { public int Weight { get; set; } public int Age { get; set; } } List<Person> personList = new List<Person>(); personList.Add(new Person { Age = 15, Weight
person
列表,其中包含person
有一个weight
和一个age
属性
Person.cs
:
public class Person
{
public int Weight { get; set; }
public int Age { get; set; }
}
List<Person> personList = new List<Person>();
personList.Add(new Person { Age = 15, Weight = 68 });
personList.Add(new Person { Age = 19, Weight = 75 });
personList.Add(new Person { Age = 17, Weight = 68 });
personList.Add(new Person { Age = 15, Weight = 55 });
personList.Add(new Person { Age = 15, Weight = 53 });
personList.Add(new Person { Age = 17, Weight = 88 });
personList.Add(new Person { Age = 19, Weight = 45 });
personList.Add(new Person { Age = 20, Weight = 88 });
//Grouped person list
List<People> GroupedPersonList = new List<People>();
GroupedPersonList = personList.OrderBy(x => x.Weight).????
Program.cs
:
public class Person
{
public int Weight { get; set; }
public int Age { get; set; }
}
List<Person> personList = new List<Person>();
personList.Add(new Person { Age = 15, Weight = 68 });
personList.Add(new Person { Age = 19, Weight = 75 });
personList.Add(new Person { Age = 17, Weight = 68 });
personList.Add(new Person { Age = 15, Weight = 55 });
personList.Add(new Person { Age = 15, Weight = 53 });
personList.Add(new Person { Age = 17, Weight = 88 });
personList.Add(new Person { Age = 19, Weight = 45 });
personList.Add(new Person { Age = 20, Weight = 88 });
//Grouped person list
List<People> GroupedPersonList = new List<People>();
GroupedPersonList = personList.OrderBy(x => x.Weight).????
在LINQ提取方法中如何实现这一点?您可以像这样使用
GroupBy
:
var GroupedPersonList = personList.GroupBy(x => x.Age , (key,element) => new
{
Age = key,
Weight = element.Max(c=>c.Weight)
});
…或类似
var groupedData = from person in people
orderby person.Age
group person by person.Age into ageGroup
select new { Age = ageGroup.Key, MaxWeight = ageGroup.Max(p => p.Weight) };
groupedData.ToList().ForEach(g =>
{
Console.WriteLine("{0}, {1}", g.Age, g.MaxWeight);
});
谢谢,祝你今天愉快谢谢,祝你今天愉快