Avoid repeated work in AttackBase.

- Avoid enumerating the collection more than once in a method as it is not trivial.
- Don't wrap the creation of the enumerable in a lazy expression - creating the enumerable itself is cheap.