c# - LINQ- 组合多个 List<T> 并按值排序 (.Net 3.5)

标签 c# .net linq generics

我正在尝试合并多个 List<T> where T:IGetTime (即 T 将始终具有方法 getTime() )。

然后我尝试按 DateTime 订购商品那getTime()返回。

我的 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();
    }

我还没有添加 orderby .应该看起来像这样:

var thestream = from T item in this
                orderby item.getTime() descending
                select item;

有没有办法合并和排序最终列表????

提前致谢

罗伯托

最佳答案

这里有三个列表 - 您究竟想根据什么来订购?

您的转换也不正确 - 结果将是 IEnumerable<X>其中 X是具有三个 T 的匿名类型在.

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

return one.Concat(two)
          .Concat(three)
          .OrderByDescending(x => x.GetTime())
          .ToList();

关于c# - LINQ- 组合多个 List<T> 并按值排序 (.Net 3.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/396621/

相关文章:

c# - Go语言中Char到Ascii int的转换

c# - 使用 .net 语言抓取帧

c# - 从 c# windows 服务应用程序 Hook 窗口事件不起作用

c# - Entity Framework Core 中 TimeSpan 的总和

c# - 在 Entity Framework 中更改数据库结构和移动数据

c# - 将 wchar_t** 从 C++ 编码到 C# 作为输出参数?

c# - 从 BackgroundWorker 调用的方法中返回

c# - 如何使用 WPF 和 .NET 3.5 注册一个全局热键来说 CTRL+SHIFT+(LETTER)?

c# - Linq order by, group by 和 order by each group?

c# - 删除不是 ASCII 32 到 175 C# 的字符的更好方法