从IEnumerable <Dictionary <string,object >>获取键和值

Ram*_*rai 4 c# linq dictionary .net-4.0 system.reflection

我有一个 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 */
Run Code Online (Sandbox Code Playgroud)

我知道可以使用Reflection或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.
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*dro 7

试试:

IEnumerable<object> values = testData.SelectMany(x => x.Values);
Run Code Online (Sandbox Code Playgroud)

  • 最后应该有 8 个值。 (2认同)