getLayer() public method

public getLayer ( int layer_num ) : List
layer_num int
return List
        // ====== METHODS ==================

        //given two indiv A & B, this method will choose a random layer and a random neuron position in that layer and then do a crossover
        //by cuting A and B at this pos and mixing them together, and it will return a list containing the 2 mixed indivs
        public List<indiv> crossover(indiv A, indiv B)
        {
            int layer_num_Crossingover = rand.Next(1, A.getNbLayer()-1);//in the first layer all weigths are 1 and can't change so no need to crossover at this layer
            int Neuron_num_Crossingover = rand.Next(0, A.getNbNeuronAtLayer(layer_num_Crossingover)-1);

            List<Nn.Neuron> layer_CrossingoverA = new List<Nn.Neuron>(A.getLayer(layer_num_Crossingover).GetRange(0, Neuron_num_Crossingover));

            layer_CrossingoverA.AddRange(B.getLayer(layer_num_Crossingover).GetRange(Neuron_num_Crossingover, B.getNbNeuronAtLayer(layer_num_Crossingover) - Neuron_num_Crossingover));
            List<Nn.Neuron> layer_CrossingoverB = new List<Nn.Neuron>(B.getLayer(layer_num_Crossingover).GetRange(0, Neuron_num_Crossingover));
            layer_CrossingoverB.AddRange(A.getLayer(layer_num_Crossingover).GetRange(Neuron_num_Crossingover, A.getNbNeuronAtLayer(layer_num_Crossingover) - Neuron_num_Crossingover));

            List<List<Nn.Neuron>> NnA2 = new List<List<Nn.Neuron>>(A.getLayersRange(0, layer_num_Crossingover));
            NnA2.Add(layer_CrossingoverA);
            NnA2.AddRange(B.getLayersRange(layer_num_Crossingover+1, B.getNbLayer()));

            List<List<Nn.Neuron>> NnB2 = new List<List<Nn.Neuron>>(B.getLayersRange(0, layer_num_Crossingover));
            NnB2.Add(layer_CrossingoverB);
            NnB2.AddRange(A.getLayersRange(layer_num_Crossingover+1, A.getNbLayer()));



            indiv A2 = new indiv(NnA2);
            indiv B2 = new indiv(NnB2);
            List<indiv> newIndivs = new List<indiv>();
            newIndivs.Add(A2);
            newIndivs.Add(B2);
            return newIndivs;
        }