ho un problema utilizzando LINQ per ordinare una struttura come questa:Ordina una query Lista <T> utilizzando espressioni
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; }
}
Una persona potrebbe andare in questo modo:
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" };
vorrei usare LINQ proiezione per ordinare una lista di persone che salgono per l'attributo personale della mia scelta, ad esempio, sort su Age, o sort su FirstName.
Sto provando qualcosa di simile
string mySortAttribute = "Age"
PersonList.OrderBy(p => p.PersonAttribute.Find(s => s.Name == mySortAttribute).Value);
Ma la sintassi mi sta fallendo. Qualche indizio?
Ciò non rispondere alla sua domanda. Non ha chiesto come ristrutturare i suoi dati, ha chiesto come ordinare una struttura dati (presumibilmente esistente, e probabilmente immutabile eredità). –