假设我有一个如下所示的对象:
MainObject
List<NestedObject>
NestedObject
List<ChildObject>
ChildObject
ChildObject
ChildObject
List<ChildObject>
ChildObject
ChildObject
List<NestedObject>
NestedObject
List<ChildObject>
ChildObject
List<ChildObject>
ChildObject
ChildObject
NestedObject
List<ChildObject>
ChildObject
ChildObject
我想要一个通用方法,允许我将 ChildObject 指定为对象列表,以列表形式返回。同样的方法允许我将 NestedObject 指定为具有列表的对象。
有没有办法用泛型做到这一点?
谢谢。
最佳答案
对于 Linq,它将是这样的:
private IEnumerable<T> Iterate<T>(Type type)
{
foreach(var p in typeof(type).GetProperties()) {
IEnumerable<T> collection = p as IEnumerable<T>;
if (collection != null){
return collection
.OfType<T>()
.Concat<T>(property.SelectMany(p => Iterate<T>(p)));
}
}
}
关于c# - 有没有办法编写一个通用方法,无论嵌套级别如何,都将从另一个对象返回类型为 T 的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22920502/