Tôi có một vấn đề sử dụng LINQ để đặt hàng một cấu trúc như thế này:Sắp xếp một truy vấn Danh sách <T> sử dụng biểu thức
public class Person
{
public int ID { get; set; }
public List<PersonAttribute> Attributes { get; set; }
}
public class PersonAttribute
{
public int ID { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
Một người có thể đi như thế này:
PersonAttribute Age = new PersonAttribute { ID = 8, Name = "Age", Value = "32" };
PersonAttribute FirstName = new PersonAttribute { ID = 9, Name = "FirstName", Value = "Rebecca" };
PersonAttribute LastName = new PersonAttribute { ID = 10, Name = "LastName", Value = "Johnson" };
PersonAttribute Gender = new PersonAttribute { ID = 11, Name = "Gender", Value = "Female" };
Tôi muốn sử dụng LINQ phép chiếu để sắp xếp danh sách những người tăng dần theo thuộc tính người mà tôi chọn, ví dụ, sắp xếp theo Độ tuổi hoặc sắp xếp trên FirstName.
tôi đang cố gắng một cái gì đó giống như
string mySortAttribute = "Age"
PersonList.OrderBy(p => p.PersonAttribute.Find(s => s.Name == mySortAttribute).Value);
Nhưng cú pháp là không cho tôi. Bất kì manh mối nào?
này không trả lời câu hỏi của anh. Ông không hỏi làm thế nào để cơ cấu lại dữ liệu của mình, ông hỏi làm thế nào để sắp xếp một cấu trúc dữ liệu (có lẽ là tồn tại, và có lẽ không thể thay đổi). –