У меня есть несколько List с объектами. Но некоторые элементы в одном списке также существуют в других списках.
У меня вопрос, как я могу объединить все элементы всех списков в один окончательный список. Таким образом, в этом списке нет дубликатов, и элементы отсортированы по количеству дубликатов, которые каждый элемент имел в разных списках.
Пример
Список1: [пользователи1, пользователь2, пользователь3, пользователь4]
Список 2: [пользователь2, пользователь4, пользователь5]
Список 3: [пользователь4, пользователь6]
результат: [user4, user2, user1, user3, user5, user6]
(порядок пользователей с таким же количеством не имеет значения)
Я пробовал что-то вроде этого:
List<User> finalResults = list1.Concat(list2).ToList<User>();
var q = finalResults.GroupBy(x => x.id)
.Select(g => new User { name = g.First().name, count = g.Count() })
.OrderByDescending(usr => usr.count);
finalResults = q.ToList<User>();
но результатом является пустой список.
Заранее спасибо!