将方法的集合结果作为params参数传递

时间:2015-03-31 09:22:50

标签: c# collections params

我有一个方法需要参数,我想用另一种方法提供这些参数。例如:

public void Process(params string[] words)
{
    // do some stuff
}

public IEnumerable<string> GetWords()
{
    yield return "test";
}

Process(GetWords()); // Error collection of strings must be passed individually

但是这是不允许的,因为结果被认为是IEnumerable类型的单个参数,而不是一组参数类型字符串。我尝试过使用ToArray和ToList,同样的问题。有没有办法将方法的结果用作params参数?

编辑:首先传递另一个参数时会出现问题。问题是我需要保持对第一个参数的访问,而不是其他参数。这可以通过让方法创建所有参数,单独调用它并保持对第一个元素的引用来完成。

1 个答案:

答案 0 :(得分:3)

我想你想要

    Process(GetWords().ToArray());