我开发了一个dll,允许我使用我的API的某些方法。所有工作都很好,但是现在我遇到了linq问题。特别是我通常将所有从api返回的结果存储在对象列表中。所以我可以遍历它并分离每个项目。现在我有这个类:无法用linq创建嵌套列表中的对象列表
public class Agent
{
public int id { get; set; }
public string name { get; set; }
}
public class RootObject
{
public List<Agent> agent { get; set; }
}
我反序列化JSON是这样的:
var obj = JsonConvert.DeserializeObject<RootObject>(responseText);
return obj.Select(o => o.agent).ToList();
我现在可以正确地反序列化JSON的“原因是Agent
列表,但我不能使用方法返回对象的列表:
return obj.Select(o => o.agent).ToList();
的.Select
被红色下划线,编译器告诉我:
Agent.RootObject不包含定义选择
相反,如果我使用:var obj = JsonConvert.DeserializeObject<List<RootObject>>(responseText);
所有返回行红色下划线:
不能转换系统.Collections.Generic.List in System.Collections.Generic.List
那么我该如何解决这个问题呢?
如果'obj'是一个'RootObject',那么你会希望'obj.agent.Select(o => o.company)',尽管我在你的类定义中没有看到'company', –
抱歉修复错字。如果你看看代理类定义,你可以看到这是一个列表 – IlDrugo
@IlDrugo在这种情况下,只需使用'obj.Agent'。 –