2016-08-25 2 views
0

나는 IEnumerable(Of IEnumerable(Of Integer))이 있다고 생각해 봅시다. 내부의 IEnumerable에는 모두 IDs이 포함되어 있습니다. IDsDistinctl y를 모두 IEnumerable(Of Integer)에 모으고 싶습니다.치수를 줄이는 방법은 무엇입니까?

Dim result as New List(Of Integer) 
For Each element In IDs 
    result.AddRange(element) 
Next 
result = result.Distinct 

나는이 방식이 문제가 : 나는 같은 것을 할 경우 그렇게 할 수 를 - 아마 내가 모르고 나는이 목적을 위해 Function있을 때 나는 반복 코드를 작성해야 결과는 List이고 내부 클래스를 유지하고 싶습니다. IEnumerable

편리한 LINQ 방법이 있습니까?

편집 : 나는 약 IEnumerable의하지 List의를 말하고 있기 때문에

이 질문은, this one 다릅니다. 예, 모든 ListIEnumerable 것을 알고 있지만, 나는 또한없는 모든 IEnumerableList 것을 알고 있습니다. 그 결과,이 내가 결과에서 내부 IEnumerableClass을 유지하고 싶은 내 원래의 질문에 명시된대로, 중복으로 표시 한 것보다 더 일반적인 질문입니다. 배열 인 경우 배열을 사용하는 것을 선호합니다.

+1

가능한 복제에 대한 모양을 평평 : // stackoverflow.com/questions/7328233/union-a-list-of-lists-using-linq) –

+1

앞에'List' 내가 IEnumerables에 대해 질문하고,'IEnumerable' – Sehnsucht

+0

@KeithMifsud입니다. 만약 그들이 배열했다, 나는 배열뿐만 아니라 결과 싶습니다. 이것은 좀 더 일반적인 질문입니다. –

답변

1

당신은 구조를 평평하게 SelectMany 확장 방법을 사용할 수 있습니다, 한 번 Distinct

result = IDs.SelectMany(Function(x) x).Distinct(); 

검사 (HTTP [Linq를 사용하여 목록의 연합 목록]이 Demo

+0

하리, SelectMany가 내부 IEnumerables에서 사용되는 클래스의 인스턴스가된다는 것을 확인할 수 있습니까? –

+1

그것은 @ LajosArpad입니다. –

관련 문제