Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将方法的收集结果作为params参数传递_C#_Collections_Params - Fatal编程技术网

C# 将方法的收集结果作为params参数传递

C# 将方法的收集结果作为params参数传递,c#,collections,params,C#,Collections,Params,我有一个接受params的方法,我想为这些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 i

我有一个接受params的方法,我想为这些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 GetWords()
{
收益率回归“测试”;
}
进程(GetWords());//字符串的错误集合必须单独传递
但是,这是不允许的,因为结果被视为IEnumerable类型的单个参数,而不是string类型的一组参数。我试过使用ToArray和ToList,同样的问题。有没有办法将方法的结果用作params参数

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

我想您需要

    Process(GetWords().ToArray());
我想你想要

    Process(GetWords().ToArray());
我想你想要

    Process(GetWords().ToArray());
我想你想要

    Process(GetWords().ToArray());

您期望的输出是什么?哦,这是因为我还想先添加另一个参数,我认为这无关紧要。我会编辑这个问题。不管怎样,你的答案与第一个问题的答案是正确的。你期望的输出是什么?哦,这是因为我还想先添加另一个参数,我认为这无关紧要。我会编辑这个问题。不管怎样,你的答案与第一个问题的答案是正确的。你期望的输出是什么?哦,这是因为我还想先添加另一个参数,我认为这无关紧要。我会编辑这个问题。不管怎样,你的答案与第一个问题的答案是正确的。你期望的输出是什么?哦,这是因为我还想先添加另一个参数,我认为这无关紧要。我将编辑该问题。无论如何,您的答案与第一个问题是正确的。您的意思是它应该与调用
进程(“第一”,“测试”)
相同,就像调用进程(Enumerable.Repeat(“第一”,1)。Concat(GetWords()).ToArray())一样吗?您的意思是它应该与调用
进程(“第一”,“测试”)
,就像调用进程一样吗(Enumerable.Repeat(“first”,1)。Concat(GetWords()).ToArray())可以吗?你的意思是它应该和调用
进程(“first”,“test”)
,类似于进程(Enumerable.Repeat(“first”,1)。Concat(GetWords()).ToArray()可以吗?你的意思是它应该和调用
进程(“first”,“test”)
,类似于进程吗(Enumerable.Repeat(“first”,1)。Concat(GetWords()).ToArray()可以吗?