假设这个对象:
DXMessage
{
public byte[] msg;
public int time;
public int millisecond;
}
并假设我有2个排序列表:
public static SortedList<long, DXMessage> brimstoneMessages =
new SortedList<long, DXMessage>();
public static SortedList<long, DXMessage> gpsMessages =
new SortedList<long, DXMessage>();
我在2个不同的消息列表上执行了2次查询:
var bsQuery = GlobalObjects.bsMessages.Where(t =>
((t.Value.Time >= eventStart))).ToList();
var gpsQuery = GlobalObjects.gpsMessages.Where(t =>
((t.Value.Time >= eventStart))).ToList();
我想获取这两个查询的结果,并按时间和毫秒按升序加入。
答案 0 :(得分:4)
通过“join”你的意思是“连接”而不是一种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);