public static IEnumerable<Player> RankedAbove([NotNull] this IEnumerable<Player> source, [NotNull] Rank minRank) { if (source == null) throw new ArgumentNullException("source"); if (minRank == null) throw new ArgumentNullException("minRank"); foreach (Player player in source) { if (player.Info.Rank > minRank) { yield return player; } } }