将IList投射到列表

我正在尝试将IListtypes转换为Listtypes,但每次都会出现错误。

 List<SubProduct> subProducts= Model.subproduct; 

Model.subproduct返回IList<SubProduct>

尝试

 List<SubProduct> subProducts = new List<SubProduct>(Model.subproduct); 

要么

 List<SubProduct> subProducts = Model.subproducts as List<SubProduct>; 

这个怎么样:

 List<SubProduct> subProducts = Model.subproduct.ToList(); 

在我的情况下,我必须这样做,因为没有build议的解决scheme可用:

 List<SubProduct> subProducts = Model.subproduct.Cast<SubProduct>().ToList(); 
 List<SubProduct> subProducts= (List<SubProduct>)Model.subproduct; 

隐式转换失败,因为List<>实现IList ,而不是反之。 所以你可以说IList<T> foo = new List<T>() ,而不是List<T> foo = (some IList-returning method or property)

 List<ProjectResources> list = new List<ProjectResources>(); IList<ProjectResources> obj = `Your Data Will Be Here`; list = obj.ToList<ProjectResources>(); 

这将IList对象转换为列表对象。

这是将通用对象列表强制转换/转换为string列表的最佳select。

 object valueList; List<string> list = ((IList)valueList).Cast<object>().Select(o => o.ToString()).ToList();