C# 如何转换列表<;字典<;字符串,对象>&燃气轮机;到列表<;字符串>;每个项目的';s";名称“;lambda中的财产?

C# 如何转换列表<;字典<;字符串,对象>&燃气轮机;到列表<;字符串>;每个项目的';s";名称“;lambda中的财产?,c#,dictionary,lambda,C#,Dictionary,Lambda,我有一个列表,其值如下: { name: "Joe", age: 23, ... }, { name: "Jack", age: 19, ... }, ... 我想从保存名称的列表中创建一个列表 我该怎么做(和演员一起) 我知道如何按名称选择值,但如何使用lambda返回name字段并将其转换为列表的字符串 是这样吗 List<string> names = objects.Select( item => item[ "name" ].ToString() ).ToL

我有一个
列表
,其值如下:

{ name: "Joe", age: 23, ... },
{ name: "Jack", age: 19, ... },
...
我想从保存名称的列表中创建一个
列表

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

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

是这样吗

List<string> names = objects.Select(
    item => item[ "name" ].ToString()
).ToList<string>();
列出名称=对象。选择(
item=>item[“name”].ToString()
).ToList();
看看这是否有效:

var names = objects.Select(item => (string)item["name"]).ToList();
然而,如果我可以提个建议的话,你不应该这样使用字典。考虑为你字典中的数据制作一个类。

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    // etc
}
看看这是否有效:

var names = objects.Select(item => (string)item["name"]).ToList();
然而,如果我可以提个建议的话,你不应该这样使用字典。考虑为你字典中的数据制作一个类。

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    // etc
}

由于值存储在字典中,因此键可能不一定存在。防止使用

var对象=新列表
{
新词典
{
{“name”,“Foo”}
},
新词典
{
{“name”,“Bar”}
},
新词典
{
{“布拉”,“巴兹”}
}
};
//C#局部函数
IEnumerable GetName(IDictionary obj)
{
//C#7输出变量
if(对象TryGetValue(“名称”,输出变量名称))
{
以字符串形式返回名称;
}
}
//[“Foo”,“Bar”]
变量名=
物体
.SelectMany(GetName)
.ToList();

由于值存储在字典中,因此键可能不一定存在。防止使用

var对象=新列表
{
新词典
{
{“name”,“Foo”}
},
新词典
{
{“name”,“Bar”}
},
新词典
{
{“布拉”,“巴兹”}
}
};
//C#局部函数
IEnumerable GetName(IDictionary obj)
{
//C#7输出变量
if(对象TryGetValue(“名称”,输出变量名称))
{
以字符串形式返回名称;
}
}
//[“Foo”,“Bar”]
变量名=
物体
.SelectMany(GetName)
.ToList();

你为什么不试试呢。看起来还可以<代码>ToString()
此行中的方法:
tem[“name”]。ToString()
是多余的。@MaciejLos它是必需的,因为OP的字典将对象作为值,而不是字符串,因此,您必须对其进行转换或强制转换。如果您在
列表中包含一些将样本数据加载到
中的行,您可以声明这些值如下所示:
{name:“Joe”,age:23,…}
。但稍后您将使用字符串
“name”
引用密钥。哪些是键,值是什么样子的?为什么不试试呢?看起来没问题<代码>ToString()
此行中的方法:
tem[“name”]。ToString()
是多余的。@MaciejLos它是必需的,因为OP的字典将对象作为值,而不是字符串,因此,您必须对其进行转换或强制转换。如果您在
列表中包含一些将样本数据加载到
中的行,您可以声明这些值如下所示:
{name:“Joe”,age:23,…}
。但稍后您将使用字符串
“name”
引用密钥。哪些是键,值是什么样子的?我不是这样“使用”字典的,它是在从数据库请求数据后从另一个库返回给我的。它表示数据行。我不是这样“使用”字典的,它是在数据库请求数据后从另一个库返回给我的。它表示数据行。