2012-09-14 3 views
4

나는 IEnumerable < Dictionary < string, object > > 개체를 가지고 있습니다.IEnumerable에서 키와 값 가져 오기 <Dictionary <string, object >>

배열에서 "aaavalue" "bbbvalue" "cccvalue" "dddvalue"를 가져 오려고합니다.

샘플 데이터 : 나는 그것이 반사 또는 LINQ를 사용하여 가능하다 알고

IEnumerable<Dictionary<string, object>> testData = new IEnumerable<Dictionary<string, object>>(); 

/* Values in testData will be like 
    [0] - 
     aaa - aaaValue (Key, Value) 
     bbb - bbbValue 
     ccc - cccValue 
     ddd - dddValue 
    [1] - 
     aaa - aaaValue (Key, Value) 
     bbb - bbbValue 
     ccc - cccValue 
     ddd - dddValue 

    and so on */ 

. 그러나 나는 그것을 만들 수 없었다.

도와주세요 ..

답변 :

IEnumerable<Dictionary<string, object>> enumerable = testData as List<Dictionary<string, object>> ?? testData .ToList(); 
foreach (Dictionary<string, object> objects in enumerable) 
{ 
    IEnumerable<object> values = objects.Select(x => x.Value); // To get the values. 
    IEnumerable<string> keys = objects.Select(x => x.Key); // To get the keys. 
} 
+0

당신이 "값을 얻을"무엇을 의미합니까? 예상되는 결과는 무엇입니까? –

+0

@SergRogovtsev 배열에서 "aaavalue" "bbbvalue" "cccvalue" "dddvalue"를 얻고 싶습니다. –

답변

7

로 시도해보십시오

IEnumerable<object> values = testData.SelectMany(x => x.Values); 
+0

코드가 작동 중입니다. 하지만 모든 행을 얻고 싶습니다. 귀하의 코드는 단 한 행에 대한 것입니다. –

+0

"행"과 "한 행"은 무엇을 의미합니까? – Alessandro

+0

내가 가진 객체는 Enumerable 유형입니다. 귀하의 코드는 testData [0]에서 값을 제공하고 있습니다. testData에서 모든 값을 얻고 싶습니다. –

관련 문제