2014-02-13 3 views
-1

유형 list입니다. 객체이기 때문에 [0] 또는 [1], ...을 사용하여 값을 가져올 수 없습니다.오브젝트 유형 목록에서 값을 얻는 방법 C#

GetType()을 시도했지만 많은 기능을 사용했지만 작동하지 않았습니다.

읽을 거리가 있습니까?

나는 어떤 객체를 변환 할 수있는 함수를 작성하고, 변환은 유효성 검사를 의미한다.

private static IDictionary<string, object> objectConvert(object data) 
    { 
    var result = new Dictionary<string, object>(); 
    var attrs = data.GetType().GetProperties(); 
    foreach (var attr in attrs) 
     { 
      // if attribute is object do something (use use recursion)... 
      // if attribute is list do something (use recursion)... 
      // if not object or list, just add to result 
      // after all return result 
     } 
    } 

속성이 객체입니다. 잘 작동하지만 목록 일 때 열심히 노력했지만 목록 객체에는 요소를 가져올 수 없습니다.

+0

'목록 '이 아닌 '객체'로 표시되는 이유는 무엇입니까? – zerkms

+3

'system.object type list'는 설명해 주신 것처럼 이해가되지 않습니다. 코드를 게시 할 수 있습니까? – Baldrick

+0

그는 Object type 변수에 List 종류가 있다고 생각합니다. – dotNET

답변

2

당신은 그것을 던질 수 있습니다. 캐스트가 실패 할 경우가 null 수 있도록 as를 사용하고 그것을 확인 : 당신이 당신의 객체의 실제 타입을 알고 있다면

var list = yourObjectInstance as IList<type_here>(); 

if (list != null) { 
    // cast successful. 
} 
+0

아니요, 객체는 변수입니다. 유형을 알지 못합니다. – user1350050

0

는, 단순히 표준 주조를 사용하여 해당 유형으로 캐스팅. 그런 다음 인덱서를 ((List<T>)YourObject)[0]과 같이 사용할 수 있습니다.

+0

아니요, 실제 객체를 알 수없는 객체입니다. – user1350050

관련 문제