要素のコレクションが 2 つあります。2 番目のコレクションで一致する ID を持つ最初のコレクションのすべての要素を取得し、一致する要素に対して CopyToDomain メソッドを実行しようとしています。
次のコードは問題なく動作しますが、その冗長さに少し驚きました。ReSharper はここでは何も推奨していませんが、2 つのコレクションを交差させてから、メソッドを要素にマッピングする方がより明確になるのではないかと考えていました。あなたはその変更を行いますか、それとも私が大騒ぎするのをやめて、このままにしておくべきですか?
Task task = new Task();
IList<TaskAttributeDto> taskAttributeDtos = new List<TaskAttributeDto>();
taskAttributeDtos.Add(new TaskAttributeDto{ ID = 1});
taskAttributeDtos.Add(new TaskAttributeDto{ ID = 2});
foreach (TaskAttributeDto taskAttributeDto in taskAttributeDtos)
{
TaskAttribute matching = task.TaskAttributes.FirstOrDefault(t => t.ID == taskAttributeDto.ID);
if (matching != null)
{
taskAttributeDto.CopyToDomain(matching);
}
}