2010-04-01 6 views
16

DataTable을 2 차원 배열로 변환해야하는 작업이 있습니다. 행과 열을 반복하면됩니다 (아래 예 참조).LINQ에서 다차원 배열 선택

내가 정말하고 싶은 것은 LINQ의 select 문을 사용하여 2D 배열을 생성하는 것입니다. 불행히도 LINQ에서 다차원 배열을 선택할 방법이없는 것처럼 보입니다. 예, 저는 LINQ를 사용하여 들쭉날쭉 한 배열을 선택할 수 있다는 것을 알고 있습니다.하지만 원하는 것은 아닙니다.

제 가정은 맞습니까? 아니면 LINQ를 사용하여 다차원 배열을 선택하는 방법이 있습니까?

+0

대신 배열 배열을 사용할 수 있습니까? (변환하는 것이 더 빠를 것입니다.) –

+0

예, 배열의 배열 (들쭉날쭉 한 배열)을 할 수는 있지만, 불행히도이 경우에는 내가 부른 API가 받아 들일 수없는 것이 아닙니다. – mckhendry

답변

15

나는 생각하지 않는다. 가 될 수 있도록 직사각형 배열은 어떤 T에 대한 IEnumerable<T>를 구현하지 않습니다

public static IEnumerable<TResult> Select<TSource, TResult>(
    this IEnumerable<TSource> source, 
    Func<TSource, TResult> selector 
) 

: 내 추론은 Select 및 대부분의 다른 LINQ의 기능들이 작업하고 컬렉션을 일부 T 적어도 IEnumerable<T>을 구현해야한다는 것입니다 Select 함수의 반환 값입니다.

+2

예, LINQ를 사용하여 들쭉날쭉 한 배열을 얻는 것은 간단하지만 실제 2D 배열은 완전히 다른 것입니다. –