Y no hagas esto
for (int i =0;i<this.cookies.ToArray().Length;i++)
porque
this.cookies.toArray().Length
Está evaluando en cada iteración del bucle for, está haciendo 'this.cookies' para matriz cada vez, así que solo obtienes su longitud? :) Estás aumentando la complejidad del método