I've got a method that calls itself (recursion). It collects some data which I need to analyse. It collects the data in a DTO. DTO setup:
public class SequenceDTO
{
public string sequence { get; set; }
public List<Element> stateList { get; set; }
public SequenceDTO()
{ }
public SequenceDTO(string sequence, List<Element> stateList)
{
this.sequence = sequence;
this.stateList = stateList;
}
}
This is how I initialize the recursion method:
string seq = "";
List<Element> elmList = new List<Element>();
initialSeqDTO.sequence = seq;
initialSeqDTO.stateList = elmList;
analyze(element, initialSeqDTO); //The recursion method
The recursion method:
public void handleEventAnalysis3(Element elm, SequenceDTO dto)
{
SequenceDTO newSeqDTO = new SequenceDTO();
List<Element> elmList = new List<Element>();
elmList = dto.stateList;
newSeqDTO.sequence = dto.sequence;
newSeqDTO.stateList = elmList;
newSeqDTO.stateList.Add(clientElement);
if (!clientElement.Name.Equals("Initial"))
handleEventAnalysis3(clientElement, newSeqDTO);
if (clientElement.Name.Equals("Initial"))
{
sequenceList.Add(newSeqDTO);
}
}
This is adding SequenceDTO's to the sequenceList. But the dto.stateList is the same for every SequenceDTO. How can this be?