我有 3 个通用类型列表。
List<Contact> = new List<Contact>();
List<Address> = new List<Address>();
List<Document> = new List<Document>();
并将其保存在一个对象类型的变量中。现在我需要执行 Cast Back to List 来执行 foreach,有些像这样:
List<Contact> = (List<Contact>)obj;
但是obj的内容每次都变,我有这样的:
List<???> = (List<???>)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()
尽情享受吧!
关于c# - 将对象转换为通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837063/