按照两个不同的值连接2个查询结果

本文关键字:连接 2个 结果 查询 两个 | 更新日期: 2023-09-27 18:01:46

假设这个对象:

DXMessage
{
    public byte[] msg;
    public int time;
    public int millisecond;
}

,假设我有两个排序列表:

public static SortedList<long, DXMessage> brimstoneMessages = 
            new SortedList<long, DXMessage>();
public static SortedList<long, DXMessage> gpsMessages =
            new SortedList<long, DXMessage>();

我已经在两个不同的消息列表上执行了2个查询:

var bsQuery = GlobalObjects.bsMessages.Where(t =>
            ((t.Value.Time >= eventStart))).ToList();
var gpsQuery = GlobalObjects.gpsMessages.Where(t =>
            ((t.Value.Time >= eventStart))).ToList();

我想把这两个查询的结果,并按照时间和毫秒的升序加入它们。

按照两个不同的值连接2个查询结果

你的"连接"是指"连接"而不是一种SQL连接吗?我猜你只是想:

var combined = bsQuery.Concat(gpsQuery)
                      .OrderBy(x => x.Value.time)
                      .ThenBy(x => x.Value.millisecond);

不清楚为什么你在你的查询中有这么多括号-在这种情况下,看起来你可以实际上执行组合:

var combined = GlobalObjects.bsMessages
                            .Concat(GlobalObjects.gpsMessages)
                            .Where(t => t.Value.Time >= eventStart)
                            .OrderBy(t => t.Value.Time)
                            .ThenBy(t => t.Value.Millisecond);