E não faça isso
for (int i =0;i<this.cookies.ToArray().Length;i++)
Porque
this.cookies.toArray().Length
Sua avaliação em todas as iterações do loop for, você está fazendo 'tis.cookies' para fazer o arranjo toda vez, então você recebe seu comprimento? :) você está aumentando a complexidade do método