我有两个IList,它从数据库中的不同表中获取值。这些表包含相同的列和值,但由于其他原因,客户端需要将它们存储在单独的表中。
var interval = 1000; // ms
var expected = Date.now() + interval;
setTimeout(step, interval);
function step() {
var dt = Date.now() - expected; // the drift (positive for overshooting)
if (dt > interval) {
// something really bad happened. Maybe the browser (tab) was inactive?
// possibly special handling to avoid futile "catch up" run
}
… // do what is to be done
expected += interval;
setTimeout(step, Math.max(0, interval - dt)); // take into account drift
}
正如你所看到的,他们都得到结果并存储它们,但我现在需要合并/联合这些列表,以便它们可以显示在一个表中。关于如何做到这一点的任何想法
答案 0 :(得分:1)
好吧,如果你可以为MeterReadingDto
和PseudoReadingDto
提取一个接口(或者一个基类),那么你可以将它们合并到IEnumerable
或IList
这一点。
即
public IEnumerable<BaseReadingDto> AllReadings {
get{
return MeterReadings.Concat(PseudoReadings);
}
}
答案 1 :(得分:0)
考虑使用IEnumerable方法扩展Union。
注意:使用此操作将导致从结果中删除两个集合之间的重复元素。
答案 2 :(得分:0)
您需要能够将PseudoReadingDto
和MeterReadingDto
视为同一对象类型。您可以查看匿名类型,但我建议同时实现相同的接口(例如,可能IReadingDto
)。然后,您可以创建一个新的List<IReadingDto>
并组合列表。
如果他们共享相同的类型,您可以使用List.AddRange()
将列表附加在一起。