我有两个包含点(xy)的列表。 x值是时间,y值是传感器数据。这两个列表大多数共享相同的时间戳。
我想在两个列表中映射时间戳,并将列表A中的x值替换为列表B中相应的(时间明确的)y值。
下图说明了我在寻找的内容:
有人知道怎么用linq做这个吗?
答案 0 :(得分:7)
这看起来像是一个直接的联接。
var desired = from a in ListA
join b in ListB on a.Time equals b.Time
select new
{
AValue = a.Value,
BValue = b.Value
};
或方法语法
var desired = ListA.Join(
ListB,
a => a.Time,
b => b.Time,
(a,b) => new {AValue = a.Value, BValue = b.Value});