Вы на правильном пути, говоря о LINQ. В базовой форме c ваш код может выглядеть следующим образом:
using System.Linq
groupedData = data.GroupBy(x => x.PartyName)
Выходные данные будут в этой структуре
"AOC" : [
{
"SubPartyName": "DBSR",
"OtherData": "...."
},
{
"SubPartyName": "KOLC",
"OtherData": "...."
},
]
Затем вы сможете l oop сгруппировать данные на ваш взгляд.
Дайте мне знать, если вам нужно больше разъяснений