У меня есть следующий код, который получает мне один набор результатов, а затем другой (resultsSetup
), который точно такой же, на основе того, выполняется ли условие.Добавление двух запросов Lambda/Linq вместе
// 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
, который у меня тоже не имеет успеха.
ли 'Union' работа на анонимные типы? – germi
Фактически вам нужно сохранить * результат * 'Concat' или' Union' в переменной. Они оба возвращают новый запрос, они не меняют ни входной запрос. (@germi Да, это волшебство :)) – Rawling
@ Rawling Это ... приятно. Не знал этого. – germi