C# 什么是IEnumerable<;IEnumerable<&燃气轮机&燃气轮机;方法
我所看到的c语言中的一些方法需要C# 什么是IEnumerable<;IEnumerable<&燃气轮机&燃气轮机;方法,c#,C#,我所看到的c语言中的一些方法需要IEnumerable。当方法需要IEnumerable作为参数时,我可以传递一维数组或列表。我认为通过同样的逻辑,我可以将二维数组传递为IEnumerable,但我的编译器说它不一样。例如,我可以将哪些数据类型传递给这些方法?例如IEnumerable是整数枚举的枚举 这意味着根列表的每个元素都是int的列表 如果我们写: IEnumerable<IEnumerable<int>> listOfLists = GetItems();
IEnumerable
。当方法需要IEnumerable
作为参数时,我可以传递一维数组或列表。我认为通过同样的逻辑,我可以将二维数组传递为IEnumerable
,但我的编译器说它不一样。例如,我可以将哪些数据类型传递给这些方法?例如IEnumerable
是整数枚举的枚举
这意味着根列表的每个元素都是int的列表
如果我们写:
IEnumerable<IEnumerable<int>> listOfLists = GetItems();
事实上,如果我们宣布:
var items = new List<List<int>>();
这里它不是一个多维数组,而是一个锯齿状数组:
IEnumerable只是一个接口,它由许多类/类型实现,其中两个是List和Array(您可以找到List) 因此,例如,当编译器告诉您必须传递IEnumerable参数时,它可以是一个列表(取决于“某个类”是否指字符串…如果它指的是您创建的类,则必须传递一个列表…)或字符串[](这是一个字符串数组,也实现了此接口)。 如果必须传递IEnumerable,则意味着必须传递实现IEnumerable接口的对象层。您可以有以下内容: 列表 字符串[][]
还有其他…长话短说,它是一个允许您在某些对象上执行foreach循环的接口
var items = new List<List<int>>();
var items = int[][];