문제

데이터 가능에서 뚜렷한 행을 추출해야하며 Linq2datasets 가이 작업을 수행하는 유용하고 깨끗한 방법이라고 생각했지만 다음과 같이 LINQ2DS 쿼리에서 단순히 리턴 행을 식별 할 수없는 것으로 보입니다.

var result = from r in fips.AsEnumerable() select
r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
r.Field<string>("PROCESS_SUB_GROUP_NAME"),
r.Field<string>("...

첫 번째 쉼표 이후 오류가 발생하기 시작합니다.

이것은 올바른 가정입니까, 그리고 DataSet에서 열의 하위 집합을 반환하여 고유 한 () 메소드를 적용 할 수있는 방법은 무엇입니까?

도움이 되었습니까?

해결책

당신은 새로운 진술과 필드 이름을 잊어 버렸습니다.

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

또한 유형을 사용할 것이라고 명시 적으로 선언 할 수도 있습니다.

var result = from r 
    in fips.AsEnumerable() 
    select new MyType("InitClassParams") 
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    };

Scott Guthrie (부사장 Devision, Microsoft)는 LINQ에 대한 좋은 정보를 가지고 있습니다 (LINQ에서 SQL에 대해 이야기하지만 대부분은 상관없이 적용됩니다).

그런 다음 고유 한 조항을 적용하십시오.

var result = from r 
    in fips.AsEnumerable() 
    select new
    {
        FacProcess = r.Field<string>("FACILITY_PROCESS_SUB_GROUP_CODE"),
        GroupName = r.Field<string>("PROCESS_SUB_GROUP_NAME"),
        Item3 = r.Field<string>("Item3")
    }
    distinct;

그런 다음 목록에 올리거나 반복하십시오. 다음과 같은 것이 실행될 때까지 선택/구별되지 않습니다.

var list = result.ToList()
foreach(var item in result) {}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top