Как добавить список из нескольких объектов в список - PullRequest
0 голосов
/ 18 января 2020

Когда я добавляю объект в bCPList после цикла, все записи становятся такими же, как последний вставленный объект. Почему это происходит и как я могу решить это?

public List<Entity.BCPToolkitWorkplace> Load_work_Place(List<BCPToolkitWorkplace> bCPToolkit)
{
    Entity.BCPToolkitWorkplace bCP = new Entity.BCPToolkitWorkplace();
    List< Entity.BCPToolkitWorkplace> bCPList = new List<Entity.BCPToolkitWorkplace>();

    foreach (var item in bCPToolkit)
    {
        bCP.txn_type = item.txn_type;
        bCP.workplace_id = item.workplace_id;
        bCP.workplace_name = item.workplace_name;
        bCP.workplace_number = item.workplace_number;
        bCPList.Add(bCP);
    }

    return bCPList;
}

Ответы [ 2 ]

1 голос
/ 18 января 2020

Объявите объект BCP внутри l oop следующим образом

public List< Entity.BCPToolkitWorkplace> Load_work_Place(List< BCPToolkitWorkplace> bCPToolkit)
        {

            List< Entity.BCPToolkitWorkplace> bCPList = new List< Entity.BCPToolkitWorkplace>();

            foreach (var item in bCPToolkit)
            {
                // Declaring the bcp object inside the loop
                Entity.BCPToolkitWorkplace bCP = new Entity.BCPToolkitWorkplace();
                bCP.txn_type = item.txn_type;
                bCP.workplace_id = item.workplace_id;
                bCP.workplace_name = item.workplace_name;
                bCP.workplace_number = item.workplace_number;
                bCPList.Add(bCP);
            }

            return bCPList;
        }
0 голосов
/ 18 января 2020

Вам нужно переместить эту строку внутрь foreach.

Entity.BCPToolkitWorkplace bCP = new Entity.BCPToolkitWorkplace();

Причина, по которой это происходит, заключается в том, что Entity.BCPToolkitWorkplace, очевидно, определяется как класс (ссылочный тип), и вы определили только один экземпляр этого класса наверху, так что вы технически добавляли один и тот же точный экземпляр в список снова и снова.

Посмотрите ответы здесь , чтобы узнать больше о том, как работают ссылочные типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...