У меня проблема, мне нужна помощь. У меня есть список объектов, у которых много свойств, но важны только два: «От» и «Кому».
objectData {«От»: «ContactDTO», «Кому»: [«ContactDTO» ], ... // другие поля}
contactDto {"email": "string", ... other fields}
и мне нужно вернуть новый список с уникальными записями "From ", массив контактов" Кому "без дубликатов.
Тестовые данные:
{
"From": { "email" : "user1@test.com"},
"To": "[{ "email" : "user2@test.com"}, { "email" : "user3@test.com"}]"
},
{
"From": { "email" : "user1@test.com"},
"To": "[{ "email" : "user3@test.com"}, { "email" : "user4@test.com"}]"
},
{
"From": { "email" : "user2@test.com"},
"To": "[{ "email" : "user4@test.com"}, { "email" : "user5@test.com"}]"
},
Должен вернуть:
[
"From": { "email" : "user1@test.com"},
"To": "[{ "email" : "user2@test.com"}, { "email" : "user3@test.com"}, { "email" : "user4@test.com"}]"
{
"From": { "email" : "user2@test.com"},
"To": "[{ "email" : "user4@test.com"}, { "email" : "user5@test.com"}]"
}
]
Я знаю, как это сделать на al oop, но я хотел бы сделать его более читаемым и чистым с помощью linq.
Я пробовал:
var newData = data.Where(x => IsReview(x))
.Select(x =>
new {
From = x.From.EmailAddress,
List = x.To.Select(z => z.EmailAddress).ToList()
}).GroupBy(y => y.From);