p.IsActive стоит заменить на p.IsActiveForbar(i)