如何将List <Dictionary <string,object >>转换为lambda中每个项目的"name"属性的List <string>?

Don*_*mmy 0 c# lambda dictionary

我有这样的List<Dictionary<string, object>>值:

{ name: "Joe", age: 23, ... },
{ name: "Jack", age: 19, ... },
...
Run Code Online (Sandbox Code Playgroud)

我想创建一个List<string>包含名称的内容.

我该怎么做(和演员表一起)?

我知道如何按名称选择值,但是如何使用lambda返回name字段并将其转换为列表的字符串?

这是正确的吗?

List<string> names = objects.Select(
    item => item[ "name" ].ToString()
).ToList<string>();
Run Code Online (Sandbox Code Playgroud)

sty*_*ybl 5

看看这是否有效:

var names = objects.Select(item => (string)item["name"]).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,如果我可以提出建议,则不应以这种方式使用词典.考虑为您的词典中的数据创建一个类.

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    // etc
}
Run Code Online (Sandbox Code Playgroud)