如何使用LINQ获取Json类型对象的IDS列表

时间:2018-09-27 18:36:50

标签: c# list performance linq linq-to-sql

如果您希望获取具有Acl类IDS的列表,则问题在于,这些列表通过以下方式包含在公司列表中...

COMPANY:CS

public class Company
{
    [JsonProperty(PropertyName = "id")]
    public int Id { get; set; }

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }      

    [JsonProperty(PropertyName = "acl")]
    public List<Acl> Acl { get; set; }
}

ACL.CS:

public class Acl
{
    [JsonProperty(PropertyName = "id")]
    public int Id { get; set; }

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }      

    [JsonProperty(PropertyName = "actions")]
    public List<Action> Actions { get; set; }
}

这些对象为JSON类型,并具有以下结构

screenshot

图像显示了您想要获得的示例,其中包含COMPANY的ACL对象的IDS列表。

但是我怎么得到这个结果?我目前有以下查询

var servicios = mainViewModel.LoginResponse.Companies
                    .Where(c => c.Principal == true)
                    .Select(c => c.Acl)
                    .ToList();

如何隔离我的对象并仅获取具有所需IDS的列表?我必须使用什么LINQ命令?对我有帮助吗?

1 个答案:

答案 0 :(得分:1)

尝试一下:

var servicios = mainViewModel.LoginResponse.Companies
                .Where(c => c.Principal == true)
                .SelectMany(c => c.Acl.Select(z => z.Id))
                .ToList();