2009-03-06 4 views
3

BindingList<T>T[]으로 변환하는 가장 쉬운 방법은 무엇입니까?BindingList 을 T 배열로 변환

편집 :이 프로젝트는 3.0이므로 LINQ가 필요하지 않습니다.

+0

참고 : C# 3.0 컴파일러 (또는 VS2008)를 사용하는 경우 LINQ를 .NET 3.0과 함께 사용할 수 있습니다. 그냥 LINQBridge를 참조하십시오. –

답변

9

음에 .CopyTo() 방법을 사용해야합니다 (C# 3.0 + 하나 .NET 3.5 LINQBridge) 당신이 .ToArray() 사용할 수 있습니다 - 그렇지 않으면 그냥 배열을 생성하고 데이터를 복사하십시오.

T[] arr = new T[list.Count]; 
list.CopyTo(arr, 0); 
1

이 게시물은 .net2.0으로 태그를 지정 했으므로 변경되었습니다. ToArray() 메서드가 있으므로 List를 사용할 수 있습니다.

public T[] ToArray<T>(BindingList<T> bindingList) { 
    if (bindingList == null) 
     return new T[0]; 

    var list = new List<T>(bindingList); 
    return list.ToArray(); 
} 

참고 : 실제로 다른 구성원이 보여준 CopyTo 솔루션보다 성능이 낮은 솔루션입니다. 그들의 솔루션을 대신 사용하여이 배열은 두 개의 배열, 결과 및 List 인스턴스 내부를 생성합니다. 당신은 LINQ이있는 경우

+0

질문에 태그가 있습니다 .net2.0 – annakata

+0

@annakata; LINQ는 여전히 .NET 2.0 + C# 3.0 + 몇 가지 간단한 메서드 등 (또는 LINQBridge)과 함께 사용할 수 있기 때문에 * C# 2.0 또는 C# 3.0과 관련이 있습니다. –

+0

@ Tant102 - 내가 원했던 대답을 선호했다 .- 목록 접근법은 약간 과소 평가되었고 (대용량 데이터의 경우) 약간 비효율적이다. –

3

닷넷 2에서 당신이 당신의 BindingList<T>

관련 문제