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

在C#中创建IEnumerable匿名实例的语法是什么?,c#,linq,lambda,C#,Linq,Lambda,我有一个函数,它的参数是IEnumerable。我们称之为: Iter(IEnumerable<string> list) 重申一下,这不是双关语,我想知道是否有一种方法可以使用匿名函数/lambda,这样我就不必创建容器的实例了。那么: Iter(new [] {thing1}); 由于您的参数是IEnumerable,因此可以传递数组或列表 那么: Iter(new [] {thing1}); 由于您的参数是IEnumerable,因此可以传递数组或列表 对于一个字符串,还

我有一个函数,它的参数是IEnumerable。我们称之为:

Iter(IEnumerable<string> list)
重申一下,这不是双关语,我想知道是否有一种方法可以使用匿名函数/lambda,这样我就不必创建容器的实例了。

那么:

Iter(new [] {thing1});
由于您的参数是
IEnumerable
,因此可以传递数组或
列表

那么:

Iter(new [] {thing1});

由于您的参数是
IEnumerable
,因此可以传递数组或
列表

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

Iter(Enumerable.Repeat<string>("thing1", 1);
Iter(可枚举重复(“thing1”,1);

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

Iter(Enumerable.Repeat<string>("thing1", 1);
Iter(可枚举重复(“thing1”,1);

您也可以将其放入任何实现IEnumerable的集合中(即
新列表(thing1)
)你不能创建IEnumerable的实例,它是一个接口,不能被实例化。但是你可以创建一个实现IEnumerable的某种类型的实例。即使你可以在lambda中使用yield,一些实现
IEnumerable
的对象仍然会被创建;它只会由编译器而不是你的代码创建。你也可以在该点使用数组。您也可以始终将其放入任何实现IEnumerable的集合中(即
newlist(thing1)
)你不能创建IEnumerable的实例,它是一个接口,不能被实例化。但是你可以创建一个实现IEnumerable的某种类型的实例。即使你可以在lambda中使用yield,一些实现
IEnumerable
的对象仍然会被创建;它只会由编译器而不是你的代码创建。你在这一点上也可以使用数组。这可能是最接近的。如果我没记错的话,lambda表达式是不允许实现迭代器方法的。我知道我可以这样做。看起来IEnumerable应该可以使用lambda实现。我想另一种方法是创建一个匿名类,我可以实现了接口。这可能是最接近的事情。如果我没记错的话,lambda表达式不允许实现迭代器方法。我知道我可以做到。看起来IEnumerable应该真的可以使用lambda实现。我想另一种方法是创建一个匿名类来实现inter面对