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,按距离排序的顺序o.Rows[0].Elements.OrderBy(e => e.Distance)对其进行排序。这没有多大意义。您如何比较两个序列,例如{1,3,4}to {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

让我们看看下面,对于这个问题,我尝试过使用两个顺序的相同查询,如下所示,对我有用

 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 回答