在 C# 中,可以使用params
关键字为方法指定任意数量的类型参数:
public void DoStuff(params Foo[] foos) {...}
public void OtherStuff {
DoStuff(foo1);
DoStuff(foo2, foo3);
}
如果你已经有一个对象列表,你可以把它变成一个数组传递给这个方法:
DoStuff(fooList.ToArray());
但是,有没有什么优雅的方式来混搭?也就是说,要传入多个对象和对象列表并将结果扁平化为一个列表或数组?理想情况下,我希望能够像这样调用我的方法:
DoStuff(fooList, foo1, foo2, anotherFooList, ...);
截至目前,我知道如何做到这一点的唯一方法是将所有内容预处理到一个列表中,我不知道有任何方法可以通用地做到这一点。
编辑:要清楚,我没有嫁给params
关键字,它只是一个相关的机制,帮助我解释我想要做什么。我对任何看起来很干净并将所有内容扁平化为一个列表的解决方案感到非常满意。