Группировка и заказ полу письменный лямбда-запрос - PullRequest
0 голосов
/ 14 мая 2018
public class Car
{
    [JsonProperty("name")]
    public string Name{get;set;}
    [JsonProperty("type")]
    public string Type{get;set;}
}

public class CarOwner
{
    [JsonProperty("name")]
    public string Name{get;set;}
    [JsonProperty("gender")]
    public string Gender{get;set;}
    [JsonProperty("age")]
    public int Age{get;set;}
    [JsonProperty("cars")]
    public List<Car> Cars{get;set;}
}

public class Result
{
    public string Gender { get; set; }
    public List<string> Name { get; set; }
}

Что я пробовал:

var z = m.Where(b => b.Cars != null).Select(k => new Result{Gender = 
k.Gender, Name = k.Cars.Where(t => t.Type.Contains("Heavy")).Select(h => 
h.Name).ToList()});

Мне нужно сгруппировать по полу и отобразить все названия автомобилей под ним в алфавитном порядке.e..g

мужчина: посол (отсортировано по алфавиту) Lamborghini Maruti

женщина: Bugatti (отсортировано по алфавиту) Maruti Scooty

1 Ответ

0 голосов
/ 14 мая 2018

Вы уже знаете, что вам нужно делать, и это именно то, что вам нужно.

 var res = owners
             .GroupBy(o => o.Gender)
             .Select(r => new Result
         {
             Gender = r.Key,
             Name = r
             .SelectMany(co => co.Cars)
             .Select(c => c.Name)
             .OrderBy(car => car).ToList()
         });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...