我的问题在于我有一个采用可变数量参数的方法。
new ClassName(p1, p2)
这些参数中的每一个都是一个对象,真正的问题在于为该方法中的每个参数编写它变得非常冗长。
有没有办法以or的形式发送p1
和p2
作为单个参数?{p1, p2}
(p1, p2)
这样我就可以编写Insert(("John", "Doe"), ("Sherlock", "Holmes"), ... etc)
然后将它们传递给方法本身的新闻而不是编写Insert(new Person("John", "Doe"), new Person("Sherlock", "Holmes"), ... etc)
我知道 F# 和 scala 中的元组可以这样做,但是在 C# 中使用元组只会使代码更长
那么有没有办法让它不那么冗长?
编辑:我不想创建新数组或新列表,而是想尽可能避免使用 new 关键字
Edit2:有些人要求看看我的 Insert 方法是什么样子的;目前它看起来像这样:
public void Insert(params Person[] arr)
{
//inserts the person in a hash table
Action<Person> insert = (person) => _table[hasher(person.Name)].Add(person);
// calls the insert function/action for each person in the parameter array
Array.ForEach(arr, insert);
}