我有以下代码,它为我提供了一组结果,然后是另一个(resultsSetup
),如果满足条件则完全相同。
// use Linq to query the downtime data
var results = from t in this.MachineEvent.Transactions.OfType<Logic.DowntimeScrapTransaction>()
where t.TransactionType == Logic.Enums.MachineEventTransactionType.DowntimeScrapTransaction
group t by t.Reason.Group into grps
let totalDowntime = grps.Sum(g => g.DowntimeDuration.TotalMinutes)
orderby totalDowntime descending
select new { Key = grps.Key, values = grps, TotalDownTime = grps.Sum(g => g.DowntimeDuration.TotalMinutes) };
if (this.MachineEvent.MachineState == Logic.Enums.MachineState.Production)
{
var resultsSetup = from t in this.MachineEvent.GetSetupMachineEvent().Transactions.OfType<Logic.DowntimeScrapTransaction>()
where t.TransactionType == Logic.Enums.MachineEventTransactionType.DowntimeScrapTransaction
group t by t.Reason.Group into grps
let totalDowntime = grps.Sum(g => g.DowntimeDuration.TotalMinutes)
orderby totalDowntime descending
select new { Key = grps.Key, values = grps, TotalDownTime = grps.Sum(g => g.DowntimeDuration.TotalMinutes) };
results.Concat(resultsSetup);
results.Union(resultsSetup);
}
我想要做的只是将这两个结果结合在一起。正如您所看到的,我已经尝试了Concat
和Union
方法,但我也没有成功。
答案 0 :(得分:3)
正如您所看到的,我已经尝试了
Concat
和Union
方法,但我也没有成功。
这是因为你忽略了它们的返回值。你应该做的
results = results.Concat(resultsSetup);
如果您要将resultsSetup
的所有项目追加到results
或
results = results.Union(resultsSetup);
如果您想获得一个联盟(即删除所有重复项)。
答案 1 :(得分:1)
我想你的意思是说:
results = results.Concat(resultsSetup);
答案 2 :(得分:1)
试试这个......
results = results.Union(resultsSetup);