Я хотел бы изменить свойства входящего объекта. Как это сделать без создания нового экземпляра?Как изменить свойства входящего объекта без создания нового экземпляра?
У меня есть класс
public class Report : IReport<ReportItem>
{
public Report()
{
Items = new ReportItemsCollection();
}
public Report(IEnumerable<ReportItem> items)
{
Items = new ReportItemsCollection(items);
}
[DataMember(Name = "items")]
public ReportItemsCollection Items { get; private set; }
IEnumerable<ReportItem> IReport<ReportItem>.Items
{
get { return Items; }
}
}
и два метода
private static Report ConvertReportItems(Report report)
{
var reportData = report.Items.Select(BackwardCompatibilityConverter.FromOld);
return new Report(reportData);
}
public static ReportItem FromOld(ReportItem reportItem)
{
reportItem.AgentIds = new List<Guid> { reportItem.AgentId };
reportItem.AgentNames = new List<string> { reportItem.Agent };
return reportItem;
}
Вам нужно объяснить больше об этом. –
Я немного неясен, но что-то вроде 'reportData.Items = report.Items.Select (BackwardCompatibilityConverter.FromOld);' изменит существующий элемент без создания нового. Не уверен, что это действительно действительно, конечно, не зная вашу структуру объекта, но вы получаете суть. – Chris
Зачем создавать новый экземпляр, если вы хотите изменить свойство? Что такое «Отчет»? Вам нужно больше объяснить вашу проблему. –