将非泛型集合转换为泛型集合的最佳方法非泛型集合转换为泛型集合的最佳方法是什么收藏?LINQ有办法吗?我有以下代码。公共类NonGenericCollection:CollectionBase{publicvoidAdd(TestClassa){List.Add(a);}}publicclassConvertTest{publicstaticListConvertToGenericClass(NonGenericCollectioncollection){//在这里寻求帮助。}}谢谢!由于可以保证它们都是TestClass实例,因此使用LINQCast方法:publicstaticListConvertToGenericClass(NonGenericCollectioncollection){returncollection.Cast().ToList();编辑:如果你只是想要(可能)异构Collection的TestClass实例,使用OfType来过滤它:publicstaticListConvertToGenericClass(NonGenericCollectioncollection){另一种优雅的方法是创建一个像这样的包装器类(我有一个包含它的实用程序项目)。公共类EnumerableGenericizer:IEnumerable{publicIEnumerableTarget{get;放;}publicEnumerableGenericizer(IEnumerabletarget){Target=target;}IEnumeratorIEnumerable.GetEnumerator(){返回GetEnumerator();}publicIEnumeratorGetEnumerator(){itemforeach(inTarget){yieldreturnitem;您现在可以这样做:IEnumerablegenericized=newEnumerableGenericizer(nonGenericCollection);然后您可以在通用集合周围包装一个普通的通用列表。也许不是最好的方法,但它应该有效。以上就是C#学习教程的全部内容:非泛型集合转化为泛型集合的最佳方式。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——:collection){if(objectinstanceofTestClass){newList.add(object)}else{thrownewIllegalArgumentException();}}返回新列表;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
