ProsteOrderBy nadrzędna przedmiot przez zagnieżdżony Collection
public class TimeLine
{
public String Name {get;set}
public List<Milestone> MilesStones {get;set}
}
public class Milestone
{
public String Name {get;set}
public DateTime Time {get;set}
}
Próbowałem: from t in DataAccess.TimelineCollection.OrderBy(c=>c.MilesStones.OrderBy(z=>z.MilestoneDate)) select t;
ale dostałem komunikat, że „co najmniej jeden obiekt musi implementować IComparable.”
Muszę zamówić TimeLine przez Milestone.Time. Pierwszym projektem na liście będzie ten, który ma najdłuższą właściwość Czas w kolekcji Milestone.
Potrzebujesz pomocy z łączem.
Jon, dziękuję za odpowiedź. Czy istnieje sposób, aby sprawdzić, czy TimeLine nie ma kamieni milowych i po prostu umieścić go na wierzchu? – dotsa
'DataAccess.TimelineCollection .gdzie (M => m.MilesStones.Count! = 0) .OrderBy (T => t.MilesStones.Min (M => m.MilestoneDate)) .Concat ((DataAccess.TimelineCollection. Gdzie (m => m.MilesStones.Count == 0)); ' – dotsa
@dotsa: Można użyć' .OrderBy (t.MileStones.Select (x => x.Time) .FirstOrDefault()) ' –