Фильтрация и объединение данных в массив - PullRequest
0 голосов
/ 14 июля 2020

У меня есть массив:

{"Items":[
{"folder":"Test","number":"11"},
{"folder":"Test","number":"10"},
{"folder":"Test1","number":"130"},
{"folder":"Test1","number":"100"},
{"folder":"Test2","number":""},
{"folder":"Test2","number":"200"}
]}

Скажите, мне нужно сделать так, чтобы папка была уникальной, и записать ее значения в число разделенных запятыми?

{"Items":[
{"folder":"Test","number":"11, 10"},
{"folder":"Test1","number":"130, 100"},
{"folder":"Test2","number":"200"}
]}

1 Ответ

3 голосов
/ 14 июля 2020

вы можете использовать GroupBy для группировки по папкам и String.Join() для объединения чисел, например:

var result = Items
    .GroupBy(x => x.folder)
    .Select(x => new 
    {
        folder = x.Key,
        number = string.Join(",", x.Select(y => y.number).Where(z => !string.IsNullOrEmpty(z)))
    }).ToList();

Тест в dotnetfiddle: https://dotnetfiddle.net/FDvSmc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...