2016-12-12 1 views
0

값 사전에서 루프를 실행하고 "MTables 'QvxDataRow MakeEntry()'의 ((테이블 이름) 필드는 사전의 키 값을 통해 작동합니다.'System.Collections.Generic.KeyValuePair <int, dynamic>'System.Collections.Generic.Dictionary <int, dynamic> 형식으로 변환 할 수 없습니다.

내가 내가 내가 하드 코드 된 값을 추가로 넣을 필요가

Cannot convert type 'System.Collections.Generic.KeyValuePair<int, dynamic>' to 'System.Collections.Generic.Dictionary<int, dynamic> 

아래처럼 각 루프에 대한 오류이

SlNo StudentName StudentClass 
1  Daniel    4 
2   Maties    4 

처럼하지만 내 코드에 포함 "MTables"를 필요 행 MTables. 나는 이것을 가지고있다

private IEnumerable<QvxDataRow> GetApplicationDB() 
     { 
      Dictionary<int, dynamic> map = new Dictionary<int, dynamic> 
    { 
     {1, new {SlNo="1", StudentName="Daniel",StudentClass="4"}}, 
     {2, new {SlNo="2", StudentName="Maties",StudentClass="4"}} 
    }; 

      foreach (Dictionary<int, string> evl in map) 
      { 
       yield return MakeEntry(evl, FindTable("ApplicationsStudentDB", MTables)); 
      } 
} 

     private QvxDataRow MakeEntry(evl, QvxTable table) 
     { 
      var row = new QvxDataRow(); 
      row[table.Fields[0]] = evl.SlNo; 
      row[table.Fields[1]] = evl.StudentName; 
      row[table.Fields[2]] = evl.StudentClass; 
      return row; 
     } 

나는 이것을 어떻게 할 수 있었는지, 이것에 관해 나를 도와 줘라.

+1

어떻게 할 수 있습니까? 이 질문에서 오류를 설명하지 마십시오. 당신이 코드에서 무엇을하는지 말하고 "어떻게"할 수 있는지 물어 보면 실제 질문이 필요합니다! –

+0

@ Alfie Goodacre가 내 쿼리 – daisy

+0

을 업데이트했습니다.이 코드는 컴파일되지 않습니다. 'MakeEntry (dynamic evl, ...)'은 당신을 방해하지 않을 것입니다.하지만 StudentScore가 누락 될 것입니다. 아직 명확하지 않습니다. –

답변

3

사전의 항목을 반복 할 때 사전 내의 항목이 사전이 아니기 때문에 이는 KeyValuePair입니다. 루프에 잘못된 유형의 evl을 선언하고 있습니다. 또한 사전에 intdynamic 유형이 포함되어 있지만 루프를 문자열 쌍으로 선언하십시오. 그렇게 타입을 바꿀 수는 없습니다. 다음과 같아야합니다.

+2

또는 그냥'(var evl in ...) ' –

+0

@HenkHolterman 그래도 똑같이 유효합니다 – ADyson

+0

@ADyson 어떻게 MTables의 행에 넣으시겠습니까? 개체 인스턴스가 개체 오류 인스턴스로 설정되지 않습니다. – daisy

관련 문제