我有 3 个通用类型列表。
List<Contact> = new List<Contact>();
List<Address> = new List<Address>();
List<Document> = new List<Document>();
并将其保存在对象类型的变量中。现在我需要投射回列表来执行 foreach,有些像这样:
List<Contact> = (List<Contact>)obj;
但 obj 内容每次都会改变,我有一些这样的:
List<???> = (List<???>)obj;
我有另一个变量保存当前 obj 类型:
Type t = typeof(obj);
我可以做这样的事情吗??:
List<t> = (List<t>)obj;
Obs:我没有列表中的当前类型,但我需要强制转换,并且我现在不需要另一种形式:
List<Contact> = new List<Contact>();
经过大量的试验和错误,我在 SL 5 上得到了这个结果,但它也应该适用于常规 C#。您还需要将 LINQ 添加到您的使用列表中,以便后半部分能够工作。
List<object> myAnythingList = (value as IEnumerable<object>).Cast<object>().ToList()
Enjoy!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)