Как получить список IDS объекта типа Json с помощью LINQ - PullRequest
0 голосов
/ 27 сентября 2018

Если вы хотите получить список с IDS класса Acl, проблема заключается в том, что они содержатся в списке компаний следующим образом ...

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

На рисунке показан пример того, что вы хотите получить, список IDS объекта ACL, который содержит COMPANY

, но как мне получить этот результат?В настоящее время у меня есть следующий запрос

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

Как я могу изолировать свой объект и получить только список с необходимой IDS?Какую команду LINQ я должен использовать?любая помощь для меня?

1 Ответ

0 голосов
/ 27 сентября 2018

Попробуйте это:

var servicios = mainViewModel.LoginResponse.Companies
                .Where(c => c.Principal == true)
                .SelectMany(c => c.Acl.Select(z => z.Id))
                .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...