1

リストを並べ替えようとしています。

この行は例外をスローします:;

List<DistanceInfo> ListedDuration = 
              Distances.OrderBy(o => o.Rows[0].Elements.OrderBy(e => e.Distance))
                       .ToList();

しかし、これは機能します:

List<DistanceInfo> ListedDuration = 
              Distances.OrderBy(o => o.Rows[0].Elements[0].Distance)
                       .ToList();

どうすればこれを修正できますか?

4

2 に答える 2

6

見てみましょう:

List<DistanceInfo> ListedDuration = Distances.OrderBy(
    o => o.Rows[0].Elements.OrderBy(e => e.Distance)
).ToList();

私たちが注文しているのは:

o => o.Rows[0].Elements.OrderBy(e => e.Distance)

つまり、アイテムごとに距離o順に並べます。それはあまり意味がありません。のように、 2つのシーケンスをどのように比較しますか?o.Rows[0].Elements.OrderBy(e => e.Distance){1,3,4}{1,8}

ただし、最初の距離、または最小/最大距離を取る場合があります。

List<DistanceInfo> ListedDuration = Distances.OrderBy(
    o => o.Rows[0].Elements[0].Distance
).ToList();

List<DistanceInfo> ListedDuration = Distances.OrderBy(
    o => o.Rows[0].Elements.Min(e => e.Distance)
).ToList();

List<DistanceInfo> ListedDuration = Distances.OrderBy(
    o => o.Rows[0].Elements.Max(e => e.Distance)
).ToList();
于 2013-01-15T10:44:25.980 に答える
0

以下を見てみましょう。この問題については、以下のように2つの順序で同じクエリを使用して試しましたが、うまくいきます

 List<DistanceInfo> ListedDuration = Distances.OrderBy(o => 
 o.Rows[0].Elements[0].Distance).OrderBy(o => o.Rows[0].Elements[0].Distance
 ).ToList();
于 2017-11-01T09:50:29.360 に答える