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);
});

谢谢,祝你今天愉快谢谢,祝你今天愉快