gpt4 book ai didi

c# - 在 C# 中将数组序列 T myArray[] 转换为 IEnumerable

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

在下面的代码中,我想在不创建新数据结构对象的情况下返回一个 IEnumerable。但是,我收到以下代码的编译器错误。我错过了什么?

Error       Cannot implicitly convert type 'System.Reflection.FieldInfo[]' to 'System.Reflection.FieldInfo' 

public static IEnumerable<FieldInfo> GetAllFields(Type objectType)
{
while (objectType != null)
{
//GetFields(...) returns a FieldInfo []
yield return objectType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
objectType = objectType.BaseType;
}
}

最佳答案

Type.GetFields 返回一个 FieldInfo 对象数组。

由于您不返回数组集合,因此您必须遍历数组并 yield 返回其中的每个对象,有点像这样:

foreach (var fi in objectType.GetFields(...))
yield return fi;

关于c# - 在 C# 中将数组序列 T myArray[] 转换为 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5147001/

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