2016-10-31 1 views
0

에서 if 문LINQ : 내가 이름 isedit으로 열이 <code>IEnumerable<DataRow></code>을 반환하려면 C#에서 선택

innerResult의 내 타입이 IEnumerable<DataRow>

입니다하지만 난 오류

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<System.Data.DataRow>'. An explicit conversion exists (are you missing a cast?) 

innerResult = (from f in innerResult 

            select new 
            { 

             isedit = (bool?)Convert.ToBoolean(((APS_WorkFlow_Activities).Contains(f.Field<Guid>("ActivityID")) ? false : true)) 
            }); 
+1

당신은) .Contains (f.Field ("ActivityID")) 거짓 'Convert.ToBoolean (((APS_WorkFlow_Activities를 단순화 할 수 있습니다 :?가 true)'에'(APS_WorkFlow_Activities) .Contains (f.Field !을 ("ActivityID"))' – jcruz

+1

'innerResult'는'IEnumerable '으로 선언되었지만'select new {...}'라고 말하면 익명의 타입을 생성하여'DataRow' 대신 리턴합니다. 당신은 "이름이 isedit 인 열과 함께 IEnumerable 을 반환하고 싶다면 원본의 각'DataRow' 객체에 새로운 열을 추가하고 싶습니까? – StriplingWarrior

답변

0

innerResult가 다음과 같은 익명 형식 인 경우 select result innerResult에. 그렇지 않으면 익명 형식을 다른 형식에 할당 할 수 없습니다. 새로운 변수를 선언해야합니다.

VAR의 innerResult = 새로운 [{새로운 {isedit = 기본값 (BOOL)}}

그렇지 않으면, 새로운 변수

VAR의 innerResult2 선언 = (innerResult에서 F로하는 새로운 선택 {isedit = (bool?) Convert.ToBoolean (((APS_WorkFlow_Activities) .Contains (f.Field ("ActivityID")) ? false : true))});

관련 문제