对3个列表中的嵌套属性进行排序

时间:2015-12-16 11:24:26

标签: c#

如何对嵌套列表进行排序:

JobCollection列表

工作列表(按字符串赞助商排序)

项目清单(按订单排序)

数据模型类结构:

public class JobCollection
{
        public string Collection { get; set; }

        public virtual TrulyObservableCollection<Job> Jobs { get; private set; } = new TrulyObservableCollection<Job>();
}

public class Job
{
        public virtual JobCollection JobCollection { get; set; }

        public string JobGUID { get; set; } = Guid.NewGuid().ToString();

        public string Sponsor { get; set; }

        public virtual TrulyObservableCollection<Item> Items { get; private set; } = new TrulyObservableCollection<Item>();

}
public class Item
{
        public virtual Job Job { get; set; }

        [Key]
        public string ItemGUID { get; set; } = Guid.NewGuid().ToString();

        public int Order { get; set; }
}

我尝试了各种各样的方法但没有随处可见,例如:

EntireCollection.SelectMany(o => o.Jobs).ToList().ForEach(d => d.Sponsor = d.Items.OrderBy(e => e.Order).ToList());

elem => elem.Jobs.OrderBy(
job => job.Items.OrderBy(
    item => item.Order
)

Argh!

1 个答案:

答案 0 :(得分:0)

最简单的方法,但不建议。

jobCollection.ForEach( (jobCol) => 
    { 
        jobCol.Jobs.ForEach( (job) => 
        {
            job.Items.OrderBy( item => item.Order );
        });
        jobCol.Jobs.OrderBy( (job) => job.Sponsor );
    });