C# 将方法的收集结果作为params参数传递
我有一个接受params的方法,我想为这些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
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()可以吗?