2012-09-14 337 views
4

我有一個IEnumerable < Dictionary < string, object > >對象。從IEnumerable獲取鍵和值<Dictionary <string,object >>

我想在數組中獲得「aaavalue」「bbbvalue」「cccvalue」「dddvalue」。

樣本數據:

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 */ 

我知道這是可能使用反射或LINQ。但我無法彌補。

請幫助..

答:

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 –

相關問題