РЕДАКТИРОВАТЬ:
Когда сгруппированы по нескольким свойствам, мы перебираем сгруппированные элементы:
var employeesGroupedByRolwAndCountry = EmployeeRolesCountry.GroupBy(x => new { x.Role, x.Country });
employeesGroupedByRolwAndCountry.ToList().ForEach
(
(countryAndRole) =>
{
Console.WriteLine("Group {0}/{1}", countryAndRole.Key.Country, countryAndRole.Key.Role);
countryAndRole.ToList().ForEach
(
(multiElement) => Console.WriteLine(" : {0}", multiElement.Commonality)
);
}
);
__ ORIGINAL POST __
Вы создаете экземпляр rc1
только один раз (за пределами l oop) и добавьте тот же экземпляр в список.
Пожалуйста, убедитесь, что вы делаете
var rc1 = new myMultiElementList();
внутри l oop, где вы добавляются элементы, а не снаружи.
Все ссылки одинаковы в вашем случае:
var obj = new myObj();
for(i = 0; i < 5; i++)
{
obj.Prop1 = "Prop" + i;
list.Add(obj);
}
теперь список состоит из 5 элементов, все из которых указывают на объект (тот же экземпляр, один и тот же объект в памяти), и когда вы делаете
obj.Prop1 = "Prop" + 5
, вы обновляете тот же адрес памяти, и все указатели в списке указывают на один и тот же экземпляр, поэтому вы не получаете 472 копии LAST предмет, но получая один и тот же экземпляр 472 раза.
Решение простое. Создавайте новый экземпляр каждый раз, когда добавляете в свой список:
for(i = 0; i < 5; i++)
{
var obj = new myObj();
obj.Prop1 = "Prop" + i;
list.Add(obj);
}
Надеюсь, это поможет.