Manière élégante de combiner plusieurs collections d'éléments?

Dire que j'ai un nombre arbitraire de collections, chacune contenant des objets de même type (par exemple, List<int> foo et List<int> bar). Si ces collections ont été eux-mêmes dans une collection (par exemple, de type List<List<int>>, je pourrais utiliser SelectMany les combiner en une seule collection.

Toutefois, si ces collections ne sont pas déjà dans la même collection, c'est mon impression que j'aurais à écrire une méthode comme ceci:

public static IEnumerable<T> Combine<T>(params ICollection<T>[] toCombine)
{
   return toCombine.SelectMany(x => x);
}

Que j'ai ensuite appeler comme ceci:

var combined = Combine(foo, bar);

Est-il propre, élégante façon de combiner (n'importe quel nombre de collections sans avoir à écrire une méthode utilitaire comme Combine ci-dessus? Il semble assez simple qu'il devrait y avoir un moyen de le faire dans LINQ, mais peut-être pas.

InformationsquelleAutor Donut | 2010-12-20