我有一个接受IEnumerable参数的函数。我们称之为:
Iter(IEnumerable<string> list)
我想要传递给函数的单个字符串。有没有办法实现它而不实际创建一些实现IEnumerable的对象?看起来我应该能够使用lambda,比如:
string thing1 = "Frank";
Iter( () => { yield return thing1 };);
重申一点,没有双关语,我想知道是否有办法使用匿名函数/ lambda,所以我不必创建容器的实例。
答案 0 :(得分:6)
怎么样:
Iter(new [] {thing1});
由于参数为IEnumerable<string>
,您可以传递数组或List<string>
。
答案 1 :(得分:0)
对于一个字符串,还有另一种方法:
Iter(Enumerable.Repeat<string>("thing1", 1);