LINQ-组合多个列表<T>并按值排序(.Net 3.5)

Rob*_*ini 21 .net c# linq generics

我正在尝试组合一些List<T> where T:IGetTime(即T总是有方法getTime()).

然后我想为了通过项目DateTimegetTime()返回.

我的LINQ看起来像这样:

public static List<T> Combine(List<T> one, List<T> two, List<T> three)
    {
        var result = from IGetTime item in one
                     from IGetTime item2 in two
                     from IGetTime item3 in three
                     select new{ item, item2, item3 };

        return result.ToList();
    }
Run Code Online (Sandbox Code Playgroud)

我还没有补充一下orderby.哪个应该看起来像这样:

var thestream = from T item in this
                orderby item.getTime() descending
                select item;
Run Code Online (Sandbox Code Playgroud)

无论如何都要结合并订购最终清单????

提前致谢,

罗伯托

Jon*_*eet 26

你在这里有三个清单 - 你究竟想要订购什么?

你的演员也是不正确的 - 结果将是一个匿名类型,IEnumerable<X>其中X有三个Ts.

如果想法真的是连接三个列表然后排序,你想要:

return one.Concat(two)
          .Concat(three)
          .OrderByDescending(x => x.GetTime())
          .ToList();
Run Code Online (Sandbox Code Playgroud)