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