public override void UpdateSwarmPositions(ParticleRing<SwarmParticle> particles) { for (int i = 0; i < particles.Count(); i++) { SwarmParticle center = particles.ElementAt(i); List<SwarmParticle> neighbours = particles.GetNAdjacentParticles(i, NeighbourhoodSize); neighbours.OrderBy(n => n.GetCurrentFitness()); UpdateParticle(center, neighbours.Last()); } }