Trier une liste & lt; T & gt; en utilisant des expressions de requête

J'ai un problème à l'aide de Linq pour commander une structure comme ceci :

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

Une personne peut aller comme ceci:

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

Je voudrais utiliser LINQ projection de tri d'une liste de personnes de l'ascendant en la personne de l'attribut de mon choix, par exemple, un tri sur l'Âge, ou tri sur Prénom.

Je suis en train d'essayer quelque chose comme

string mySortAttribute = "Age"
PersonList.OrderBy(p => p.PersonAttribute.Find(s => s.Name == mySortAttribute).Value);

Mais la syntaxe est de ne pas en moi. Toute indices?

source d'informationauteur | 2009-03-30