6

単純

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

試し from t in DataAccess.TimelineCollection.OrderBy(c=>c.MilesStones.OrderBy(z=>z.MilestoneDate)) select t;ましたが、「少なくとも1つのオブジェクトがIComparableを実装する必要があります」というエラーが発生しました。

Milestone.TimeでTimeLineを注文する必要があります。リストの最初のプロジェクトは、マイルストーンコレクションで最もエラーの多いTimeプロパティを持つプロジェクトになります。

リンクについてサポートが必要です。

4

1 に答える 1

12

あなたが望むかもしれないように聞こえます

var query = DataAccess.TimelineCollection
                      .OrderBy(t => t.MileStones.Min(m => m.Time));

つまり、それぞれについて、最も早いTimeLineマイルストーンを見つけ、それを注文に使用します。

もちろん、マイルストーンが整っている場合は、次を使用できます。

var query = DataAccess.TimelineCollection
                      .OrderBy(t => t.MileStones.First().Time);

TimeLineマイルストーンがない場合、これらは両方とも失敗します。

于 2012-06-04T19:35:46.217 に答える