2010-07-28 7 views
2

Я только начинаю изучать LINQ, Мне интересно, можно ли группировать элементы в 3 разных стеках с помощью LINQ. Это то, что у меня есть, можно ли добавить несколько элементов в предложение from и как?Можно ли объединить стеки с LINQ

 var uniqueValues = 
      from n in valuesStack.ToArray() 
      group n by n into nGroup 
      select nGroup.Key; 
+0

Вы описывающее эквивалент UNION запроса в SQL? –

+0

подумайте, да! – david

ответ

3

Вы можете Union стеку вместе.

var s1 = new Stack<int>(); 
var s2 = new Stack<int>(); 
var s3 = new Stack<int>(); 
var r = s1.Union(s2.Union(s3)).ToArray(); 
+0

Спасибо, это работает идеально для того, что мне нужно! Я продолжу попытку варианта LINQ, чтобы знать это :) – david

0

Это непроверенное:

var uniqueValues = 
    from stack in stacks 
    from n in stack 
    group n by n into nGroup 
    select nGroup.Key; 
3
var uniqueValues = stack1 
    .Concat(stack2) 
    .Concat(stack3) 
    .Distinct(); 

или вы можете использовать союз:

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

perfect :) Итак, я понял, что использование LINQ для этого не требуется, но можно ли это сделать? – david

+0

@david: 'Union' считается оператором LINQ. Он является частью класса Enumerable в пространстве имен System.Linq. –

+0

@Robery: сортировка серой области. «LINQ» - это «Language Integrated Query», но это не использование каких-либо языковых запросов, а только библиотеки. –

Смежные вопросы