У меня есть список с пользователями:Сравнить элементы в списке и создайте новый
List<UserEntry> list1 = new List<UserEntry>();
list1.Add(new UserEntry { login = "1", requestorList = new List<string>() { "1", "2", "3" } });
list1.Add(new UserEntry { login = "2", requestorList = new List<string>() { "1", "4", "3" } });
list1.Add(new UserEntry { login = "3", requestorList = new List<string>() { "1", "2", "3" } });
Я хочу, чтобы найти элементы, которые имеют такое же requestorList и сгруппировать их во втором списке. В приведенном выше примере первый и третий элементы имеют 1,2,3.
Я попробовал это, и это не работает:
for (int i = 0; i < list1.Count; i++)
{
var kar = list1.ElementAt(i);
for (int j = 0; j < list1.Count; j++)
{
if(kar.requestorList.Equals(list1.ElementAt(j).requestorList))
{
list2.Add(kar);
}
}
}
EDIT: secoond Список должен иметь только два элемента, так как первый один и третий имеют одинаковые requestorLists
Почему это не работает? Что вы получаете вместо того, что вы ожидали? – Sossenbinder
все элементы из List1 копируются в List2 – user576914
Все элементы копируются, потому что вы сравниваете каждого пользователя с собой во внутреннем цикле. –