在C#中创建IEnumerable的匿名实例的语法是什么?

时间:2014-12-19 16:54:03

标签: c# linq lambda

我有一个接受IEnumerable参数的函数。我们称之为:

Iter(IEnumerable<string> list)

我想要传递给函数的单个字符串。有没有办法实现它而不实际创建一些实现IEnumerable的对象?看起来我应该能够使用lambda,比如:

string thing1 = "Frank";
Iter( () => { yield return thing1 };);

重申一点,没有双关语,我想知道是否有办法使用匿名函数/ lambda,所以我不必创建容器的实例。

2 个答案:

答案 0 :(得分:6)

怎么样:

Iter(new [] {thing1});

由于参数为IEnumerable<string>,您可以传递数组或List<string>

答案 1 :(得分:0)

对于一个字符串,还有另一种方法:

Iter(Enumerable.Repeat<string>("thing1", 1);