简体   繁体   English

可以在动态列表上使用lambda表达式以获得结果

[英]Can lambda expressions be used on dynamic list to get results

I have following code: 我有以下代码:

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

I am unable to make this work as keep on getting error cannot use lambda. 我无法继续进行此工作,因为持续出错无法使用lambda。 Is there a way to get this result? 有没有办法得到这个结果? Or should I not use dynamic here? 还是我不应该在这里使用动态?

Json string: Json字符串:

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

You don't need dynamic , I'd advise you not to use it, there's no point. 您不需要dynamic ,我建议您不要使用它,这没有意义。

It appears you have an object with an items property which is an array of objects, and you're trying to grab the name of those objects. 看来您有一个带有items属性的对象,该对象是一个对象数组,并且您正在尝试获取这些对象的name Just do this: 只要这样做:

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

像这样尝试

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM