我有两个linq结果,我想将它们合并到一个var中。我怎样才能做到这一点?无法在一个var中合并两个linq结果
var xAxisconceptIdsAndName = _analysisResult.Select(x => new { x.ConceptId1, x.ConceptDisplay1 }).Distinct();
var yAxisconceptIdsAndName = _analysisResult.Select(x => new { x.ConceptId2, x.ConceptDisplay2 }).Distinct();
xAxisconceptIdsAndName返回(1, “A”)和yAxisconceptIdsAndName返回(2, “B”)。我希望他们在像一个结果(1, “A”),(2, “B”)等
结果:
途径 - 1:
var conceptIdsAndName = Enumerable.Union(xAxisconceptIdsAndName, yAxisconceptIdsAndName);
错误:
The type arguments for method 'System.Linq.Enumerable.Union<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEnumerable<TSource>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
方法 - 2:
var conceptIdsAndName = xAxisconceptIdsAndName.Union(yAxisconceptIdsAndName);
错误:
'System.Collections.Generic.IEnumerable<AnonymousType#1>' does not contain a definition for 'Union' and the best extension method overload 'System.Linq.Queryable.Union<TSource>(System.Linq.IQueryable<TSource>, System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments
Instance argument: cannot convert from 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Linq.IQueryable<AnonymousType#2>'
有什么建议吗?
'_analysisResult'的类型是什么? – MarcinJuraszek 2014-12-01 19:05:39
它是一个ObservableCollection。 – CSharper 2014-12-01 19:06:31
我想你正在寻找'Concat'方法。 'var conceptIdsAndName = xAxisconceptIdsAndName.Concat(yAxisconceptIdsAndName);' – MarcinJuraszek 2014-12-01 19:10:22