C# 是否可以将堆栈与LINQ合并

C# 是否可以将堆栈与LINQ合并,c#,linq,stack,C#,Linq,Stack,我刚开始学LINQ, 我想知道是否可以使用LINQ将元素分组到3个不同的堆栈中。 这就是我所拥有的,是否可以在from子句中添加多个数组,以及如何添加 var uniqueValues = from n in valuesStack.ToArray() group n by n into nGroup select nGroup.Key; 这是未经测试的: var uniqueValues = fr

我刚开始学LINQ, 我想知道是否可以使用LINQ将元素分组到3个不同的堆栈中。 这就是我所拥有的,是否可以在from子句中添加多个数组,以及如何添加

        var uniqueValues =
            from n in valuesStack.ToArray()
            group n by n into nGroup
            select nGroup.Key;
这是未经测试的:

var uniqueValues =
    from stack in stacks
    from n in stack
    group n by n into nGroup
    select nGroup.Key;

您可以
Union
将堆栈组合在一起

var s1 = new Stack<int>();
var s2 = new Stack<int>();
var s3 = new Stack<int>();
var r = s1.Union(s2.Union(s3)).ToArray();
var s1=新堆栈();
var s2=新堆栈();
var s3=新堆栈();
var r=s1.Union(s2.Union(s3)).ToArray();
或者您可以使用Union:

var uniqueValues = stack1
    .Union(stack2)
    .Union(stack3);

您是在描述SQL中的联合查询吗?谢谢,这非常适合我的需要!我将继续尝试LINQ选项,只是为了知道它:)完美:)所以我知道,使用LINQ并不是必需的,但它可以做到吗?@david:
Union
被认为是LINQ操作符。它是
System.Linq
命名空间中
可枚举
类的一部分。@Robery:有点灰色区域。“LINQ”是“语言集成查询”,但这不是使用任何语言查询功能,只是图书馆。@杰姆斯-实际上我会认为这是黑白的。除非您在sl select s中从s编写一个查询,例如
,否则您不会使用LINQ。
var uniqueValues = stack1
    .Union(stack2)
    .Union(stack3);