Скажем, у меня есть произвольное количество коллекций, каждый из которых содержит объекты одного типа (например, List<int> foo
и List<int> bar
). Если эти коллекции были сами в коллекции (например, типа List<List<int>>
, я мог бы использовать SelectMany
, чтобы объединить их все в одну коллекцию.
Однако, если эти коллекции еще не находятся в одной коллекции, мне кажется, что мне придется написать такой метод:
public static IEnumerable<T> Combine<T>(params ICollection<T>[] toCombine)
{
return toCombine.SelectMany(x => x);
}
Что я тогда назвал бы так:
var combined = Combine(foo, bar);
Есть ли чистый, элегантный способ объединить (любое количество) коллекций без необходимости писать полезный метод, например Combine
? Кажется достаточно простым, что в LINQ должен быть способ сделать это, но, возможно, нет.