2013-04-30 2 views
1

У меня есть этот объект:Сортировка списка объектов, содержащих список каждый с OrderBy

public class humanInfo 
{ 
    public string m_Name { get;set; } 

    public List<HumanAttributes> m_ListHumanAttributes { get; set;} 
} 

Я хочу, чтобы отсортировать этот список на основе атрибута Age, который находится в списке атрибутов для каждого человека.

humanList = humanList.OrderBy(/*How am I gonna do this?*/); 

Я пытался достичь все элементы с помощью x => x.m_ListHumanAttributes.All(), например, но я немного невежественны относительно того, как я мог бы продолжить. У кого-то есть хорошая идея?

EDIT

Вот идея, как HumanAttributes класс может работать:

public class HumanAttributes 
{ 
    public int m_HumanAttributesID {get;set;} 

    public Sex m_HumanAttributeSex {get;set;} 

    public int m_HumanAge {get;set;} 

    public decimal m_HumanHeight {get;set;} 
} 
+0

мы можем взглянуть на 'HumanAttributes '? –

+0

Может быть, 'x => x.Age'? – Tim

ответ

3

Предполагая, что HumanAttributes имеет имя и значение свойства:

humanList.OrderBy(h=>h.ListHumanAttributes.First(a=>a.Name=="Age").Value); 
+1

+1 Я бы использовал 'DefaultOrFirst', предоставляя возможность для общения с людьми без атрибута« Возраст » –

+0

Интересно! Я попробую это, спасибо – hsim

+0

Скажите, что я хотел бы отсортировать их по имени в алфавитном порядке, как я мог продолжить? – hsim

Смежные вопросы