2010-07-28 9 views
2

그냥 LINQ를 배우기 시작했습니다. LINQ를 사용하여 3 가지 스택에 요소를 그룹화 할 수 있는지 궁금합니다. 이것은 내가 가지고있는 것입니다. 하나 이상의 배열을 from 절에 추가 할 수 있습니까?스택을 LINQ와 병합 할 수 있습니까?

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

당신이 SQL에서 UNION 쿼리의 동등한를 설명하고 있습니까? –

+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 연산자로 간주됩니다. 이것은 System.Linq 네임 스페이스의'Enumerable' 클래스의 일부입니다. –

+0

@Robery : 일종의 회색 영역. "LINQ"는 "언어 통합 쿼리"입니다. 그러나이 라이브러리는 언어 쿼리 기능을 사용하지 않습니다. –

관련 문제