OrderBy异常"至少有一个对象必须实现IComparable"

bgu*_*ler 1 c# linq sorting

我正在尝试排序列表.

这一行抛出异常:;

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

但是,这有效:

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

我怎样才能解决这个问题 ?

Mar*_*ell 6

我们来看看:

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

我们订购的东西是:

o => o.Rows[0].Elements.OrderBy(e => e.Distance)
Run Code Online (Sandbox Code Playgroud)

也就是说; 对于每个项目o,按距离排序的顺序排序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();
Run Code Online (Sandbox Code Playgroud)