lambda表达式能否用于动态列表以获取结果

本文关键字:列表 获取 结果 动态 用于 表达式 lambda | 更新日期: 2023-09-27 17:57:41

我有以下代码:

dynamic jsonData = JObject.Parse(data);
var names= new List<dynamic>();
names= jsonData.Properties().Select(p => p.first_name).ToList();

我无法完成这项工作,因为持续获取错误无法使用lambda。有办法得到这个结果吗?或者我不应该在这里使用动态?

Json字符串:

{"items":[{"id":404,"name":"Ken":{"id":215,"neighbourhood":"Mississauga"}]
    ,{"id":407,"name":"John":{"id":215,"neighbourhood":"Toronto"}]
    ,...

lambda表达式能否用于动态列表以获取结果

您不需要dynamic,我建议您不要使用它,这没有意义。

看起来您有一个具有items属性的对象,它是一个对象数组,并且您正试图获取这些对象的name。只需这样做:

var obj = JObject.Parse(data);
var names = obj["items"]
    .Select(item => (string)item["name"])
    .ToList();

这样试试

... ((IEnumerable<dynamic>)jsonData.Properties()).Select( ...