有一个项目列表,我需要根据外部列表的ID对该列表中的项目进行排序/订购
public class Venue
{
public int Id { get; set; }
public string Code { get; set; }
public IEnumerable<Machines> Machines { get; set; }
}
public class Machine
{
public string Name { get; set; }
}
假设我有一个包含3个场地的列表,我想只对Venue.Id = 1的Venue的机器进行排序; 有一个场地列表,我想总是按场地代码排序,然后按场地名称排序机器,Id = 1;
我尝试了这个但是无法正常工作:
query = query.OrderBy(x => x.Code).ThenBy(y => y.Machines.OrderBy(q => q.Name).Where(x => y.Id == 1))
答案 0 :(得分:1)
如果要对IEnumerable<T>
对象的属性进行排序,则需要选择一个新属性:
query = query
.Select(v => new Venue
{
Id = v.Id,
Code = v.Code,
Machines = v.Id == 1 ? v.Machines.OrderBy(m => m.Name) : v.Machines
})
.OrderBy(v => v.Code);