gpt4 book ai didi

c# - 有没有办法编写一个通用方法,无论嵌套级别如何,都将从另一个对象返回类型为 T 的所有对象?

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:31 25 4
gpt4 key购买 nike

假设我有一个如下所示的对象:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com