我正在尝试对列表进行排序。
此行抛出异常:;
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();
我该如何解决这个问题?
答案 0 :(得分: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}
到{1,8}
?
但是,您可以采用第一个距离,或 min / max 距离:
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();
答案 1 :(得分:0)
让我们看下面,对于这个问题,我试过用同样的查询使用两个顺序如下,适合我
List<DistanceInfo> ListedDuration = Distances.OrderBy(o =>
o.Rows[0].Elements[0].Distance).OrderBy(o => o.Rows[0].Elements[0].Distance
).ToList();