В С# можно использовать ключевое слово params
, чтобы указать произвольное количество типизированных параметров для метода:
public void DoStuff(params Foo[] foos) {...}
public void OtherStuff {
DoStuff(foo1);
DoStuff(foo2, foo3);
}
Если у вас уже есть список объектов, вы можете превратить его в массив, чтобы перейти к этому методу:
DoStuff(fooList.ToArray());
Однако есть ли какой-нибудь изящный способ mix-n-match? То есть, передавать в нескольких объектах и списках объектов и иметь результаты, сглаженные в один список или массив для вас? В идеале, я хотел бы иметь возможность вызвать мой метод следующим образом:
DoStuff(fooList, foo1, foo2, anotherFooList, ...);
Как сейчас, единственный способ, которым я знаю, как это сделать, - предварительно обработать все в один список, и я вообще не знаю, как это сделать в целом.
Изменить: Чтобы быть ясным, я не женат на ключевом слове params
, это просто связанный механизм, который помог мне объяснить, что я хотел сделать. Я очень доволен любым решением, которое выглядит чистым и сглаживает все в один список.