c# - 将对象转换为通用列表

标签 c# generics list

我有 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/

相关文章:

c# - PayPal IPN 集成(快速结账 - Razor/C#)

C# linq to xml

java - 通用通配符调用无法编译

swift - 如何为泛型类型添加扩展?

r - 将向量列表与 R 中的数据帧列表合并

python - 在 Python 中迭代包含元组和 int 的列表

c# - 如何使用 Entity Framework `ValueComparer<T>` ?

c# - SQLKata 动态 Where 子句

performance - Int 和 BigInt 的 Scala 通用数学函数与 @specialized(Int)

python - 检查列表是否是有效的 block 序列