Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
29 / 24 / 8
Регистрация: 25.10.2009
Сообщений: 265

Копирование значений свойств из одного объекта в другой

22.06.2022, 20:15. Показов 1953. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго вечера, товарищи!

Задача такая: есть 2 объекта одинакового типа. Нужно значения свойств из одного объекта скопировать в другой объект, при этом желательно иметь возможность запретить копирование некоторых свойств. Свойств много, исключить нужно всего парочку, писать простыню из присваиваний не хочется...

Знаю что можно такое замутить на рефлекции, а без неё? Есть какое-нибудь быстрое и простое решение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2022, 20:15
Ответы с готовыми решениями:

Копирование значений полей из одного объекта в другой
Здравствуйте. Прошу помочь с копированием значений полей между объектами, относящимися к одному классу. Например, вот описание класса: ...

Копирование из одного массива в другой массив одного объекта
Пытаюсь скопировать дного массива в другой массив один объект, но не выходит. Условие следующее. - есть созданные массивы: public...

Копирование Getter из одного объекта в другой
Уважаемые, у меня есть 2 объекта import * as mutations from './mutations' import * as forms from './../forms/mutations' {...

3
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
23.06.2022, 15:40
Predatore, только 2 варианта рефлексия либо ручками, если используете рефлексию то кешируйте словари чтобы отражения по типу делать единожды а не каждый раз.
0
29 / 24 / 8
Регистрация: 25.10.2009
Сообщений: 265
07.07.2022, 13:19  [ТС]
Есть третий вариант! Оставлю для себя и для потомков, т.к. сам сразу и не догадался.
Всё зависит от того, какого типа у нас объекты. Если это классы, то да, рефликсия или мартышкин труд. Но если это записи, то мир начинает играть совсем другими красками! Если конечно нас не смущает, что другой объект мы создаём при копировании, а не используем существующий.
Потому что записи поддерживают такую штуку как оператор with при создании. Например:
C#
1
2
3
4
5
6
7
8
public record Foo
{
  // Много много свойств
}
...
var foo = new Foo();
...
var bar = foo with { SomeProp = null };
Таким образом, мы создадим запись bar в которую скопируются все значение свойств из foo кроме SomeProp, потому что мы ему руками выставили null (и кроме тех у которых нет сеттера).
Не совсем то что хотелось, но тоже интересный вариант.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,138
Записей в блоге: 2
08.07.2022, 09:14
Predatore, стоит задача скопировать значения свойств в другой объект.
Вы же пишите о создании НОВОГО объекта с теми же значениями.
Это совершено разные задачи.
Неглубокий клон можно очень просто создать методом MemberwiseClone().

Добавлено через 4 минуты
Вот реализация универсального метода для любого класса: Как скопировать экземпляр класса, а не присвоить ссылку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2022, 09:14
Помогаю со студенческими работами здесь

Копирование значений одного массива в другой
Здравствуйте! В общем проблема просто детская, но она ввела в ступор. Задача проста: скопировать значения одного массива в другой. Вся...

Копирование значений одного дата грида в другой
Добрый день возникла проблемка, после напряжённых 10 часов кодинга и написания большущей проги, мозг кипит не могу понять в чём проблема. ...

Копирование значений полей одного документа в другой
Добрый вечер! Есть БД с документами. В документах есть определенные поля (План), значения в которые вводятся вручную ежедневно и которые...

Копирование свойств объекта
Приветствую! Кто бы мне подсказал? У меня есть объект Chart и во время исполнения кода мне бы хотелось создать такой же (с такими же...

Копирование одного текстового файла в другой, используя посимвольное, построчное и поблочное копирование
Здраствуйте, у меня такая проблемма мне надо обеспечить копирование одного текстового файла в другой, используя посимвольное, построчное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru