2012-09-14 289 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 –

相关问题