Привет Я пытаюсь использовать LINQ для группировки некоторых данных, которые я получил. Данные:Группа по ID в объекте List
[
{
"TicketID": 11,
"Priority": 1,
"Email": "[email protected]",
"Files": [
{
"FileID": 1,
"FileName": "file1.png"
}
]
},
{
"TicketID": 11,
"Priority": 1,
"Email": "[email protected]",
"Files": [
{
"FileID": 2,
"FileName": "file2.png"
}
]
},
{
"TicketID": 11,
"Priority": 1,
"Email": "[email protected]",
"Files": [
{
"FileID": 3,
"FileName": "file3.png"
}
]
},
]
Можно сгруппировать следующим образом:
[
{
"TicketID": 11,
"Priority": 1,
"Email": "[email protected]",
"Files": [
{
"FileID": 1,
"FileName": "file1.png"
},
{
"FileID": 2,
"FileName": "file2.png"
},
{
"FileID": 3,
"FileName": "file3.png"
}
]
}
]
Я пытался использовать LINQ:
var newList = list.GroupBy(gb => gb.TicketID).SelectMany(s => s);
Но это получает тот же результат, что и оригинал. Может быть, кто-то узнает. Спасибо!
Вы можете посмотреть на [документацию] (https://msdn.microsoft.com/en-us/library/bb545971.aspx), которая имеет множество примеров того, как использовать 'GroupBy' ... –
Правильно. Вы группируете группы по TicketID, а затем вы используете SelectMany, чтобы сгладить эти группы в одно перечисление снова. 's' - это объект' Group', который реализует 'IEnumerable'. Какая у вас была цель? Если вы просто хотите перечисление групп, избавитесь от 'SelectMany'; вы уже получили это с помощью GroupBy. –
Можете ли вы предположить, что «Приоритет» и «Электронная почта» совпадают, если «TicketID» - то же самое? –