2012-01-25 2 views
0

내가이 LINQ - 투 - SQL 목록을 가지고 내가 사용하는 1 개리스트로 병합 :LINQ 병합 된 목록에서 텍스트 파일을 만드는 방법은 무엇입니까?

var mergedList = List1.Union(List2); 

내가 연합 (EU) 명령이 목록에있는 모든 속는을 제거한다고 가정합니다. 그게 맞습니까? 어쨌든, 병합 된 목록의 내용을 CSV 파일에 쓰려고합니다.

WriteToCSVFile cf = new WriteToCSVFile(mergedList); 

이 내가 내 수업을 구성하는 방법입니다 : 내가 잘못 여기서 뭐하는 거지

public WriteToCSVFile(IEnumerable<T> mergedList) 

내가의 목록을 호출하려고 할 때 오류를 받고 있어요?

, BTW 이것은 내가지고있어 오류는 다음과 같습니다 당신이 더 많은 정보가 필요하면

The type arguments for method 'WriteToCSVFile.WriteToCSVFile(System.Collections.Generic.IEnumerable<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. 
The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?) 

알려 주시기 바랍니다. 그리고 미리 감사드립니다. ,

var cf = new WriteToCSVFile<TheTypeOfElementsInYourList>(mergedList); 

형식 유추는 방법으로 작동합니다

답변

3

당신은

public class WriteToCSVFile<T> 
{ 
    public WriteToCSVFile(IEnumerable<T> mergedList) 
    { 

    } 

    ... 
} 

클래스 제네릭해야하고 호출 할 때 그것은 일반적인 유형은 생성자에서 추론 할 수 없기 때문에 일반적인 인수 유형을 지정 그래서 extension method :

public static class CsvExtensions 
{ 
    public static void WriteToCSVFile<T>(this IEnumerable<T> list) 
    { 
     ... 
    } 
} 

다음과 같이 작성할 수 있습니다.

mergedList.WriteToCSVFile(); 

아, 나는 진심으로 당신이 할, 당신은 not rolling your own CSV parser 것을 희망?

+0

이 정의되어야한다

List list1= new List(); 

로 목록 유형이 정의 같아요. 2 개의 LINQ 목록을 병합 한 후 어떻게 테이블 개체를 보존 할 수 있습니까? 나는 그럴 것이라고 생각했지만 그렇지 않은 것 같습니다. –

+0

@inquisitive_one, 실제로 이것은 새로운 질문을받을 자격이 있습니다. –

0

익명 형식을 일반 메서드의 형식 매개 변수로 사용할 수 없습니다.

+0

제안 사항이 있으십니까? –

+0

결과 클래스를 명시 적으로 정의하십시오. –

0

귀하의 방법은 제네릭 방법이므로 비 일반 목록을 전달하는 것 같습니다. 나는 다른 스레드에 대한 질문이있을 수 있습니다

List<yourType> list1 = new List<yourType>(); 
+0

네, 맞습니다. , USdb.USsectors에 ussect 가입 USdb.UScompanies에서 uscomp에서 'var에 목록 1 = uscomp.sector_code에 가 ussect.sector_code 새로운 { uscomp.company_name을 선택 일치 한 : 이것은 내가 내 LINQ 목록을 만들 사용하고 무엇인가 uscomp.ticker, usectect.description } –

관련 문제