C# 将通用列表传递到SelectLista

C# 将通用列表传递到SelectLista,c#,C#,我知道不能将基于IEnumerable的非IEnumerable对象传递到ASP.NET MVC SelectList helper方法中(因为第一个参数需要IEnumerable)。我有一个通用列表list,我们的CustomType有一些属性,比如下拉列表中的值等 因此,如果我不能将泛型对象传递给IEnumerable,那么如果我仍然想使用SelectList帮助程序,这里还有什么其他选项呢?IEnumerable扩展了IEnumerable,因此List已经实现了IEnumerable。应

我知道不能将基于IEnumerable的非IEnumerable对象传递到ASP.NET MVC SelectList helper方法中(因为第一个参数需要
IEnumerable
)。我有一个通用列表
list
,我们的CustomType有一些属性,比如下拉列表中的值等

因此,如果我不能将泛型对象传递给IEnumerable,那么如果我仍然想使用SelectList帮助程序,这里还有什么其他选项呢?

IEnumerable
扩展了
IEnumerable
,因此
List
已经实现了
IEnumerable
。应该没问题。例如:

List<int> genericList = new List<int>();
IEnumerable<int> genericSequence = genericList;
IEnumerable weakSequence = genericSequence;
List genericList=new List();
IEnumerable genericSequence=genericslist;
IEnumerable weakSequence=通用序列;

如果您查看框架文档中的定义,您将看到它继承了非泛型IEnumerable。由于列表继承了IEnumerable,因此IEnumerable,您可以毫无问题地将其传递到SelectList中

这正是为了解决这个问题——与现有非泛型代码的向后兼容性,尽管在实现自己的IEnumerable时确实有点烦人,因为您还必须提供非泛型版本。感谢BCL团队中可爱的人:D