interface I { void P (); }
static void Q (IList<I> xs)
{ foreach (I x in xs) { x.P(); } }
static void R<C> (Action<C> S, IList<C> xs)
{ foreach (C x in xs) { S(x); } }
für gleichzeitige Behandlung mehrerer Objekte
(z. B. Object.equals(Object o) falsch,
Comparable<T>.compareTo(T o) richtig)