gpt4 book ai didi

c# - .NET 反射 - 从反射集合中获取第一项而不强制转换为特定集合

转载 作者:行者123 更新时间:2023-11-30 19:33:57 27 4
gpt4 key购买 nike

我有一个包含 CustomerContact 集合的 Customer 对象

IEnumerable<CustomerContact> Contacts { get; set; }

在其他一些代码中,我使用反射并拥有联系人属性的 PropertyInfo

var contacts = propertyInfo.GetValue(customerObject, null);

我知道通讯录中至少有一个对象,但我该如何将其取出?我不想将其转换为 IEnumerable<CustomerContact>因为我想让我的反射方法保持动态。我考虑过通过反射调用 FirstOrDefault() - 但不能轻易做到,因为它是一种扩展方法。

有没有人有什么想法?

最佳答案

如果您真的想避免在代码中提及 CustomerContact,您可以这样做:

IEnumerable items = (IEnumerable)propertyInfo.GetValue(customerObject, null);

object first = items.Cast<object>().FirstOrDefault();

关于c# - .NET 反射 - 从反射集合中获取第一项而不强制转换为特定集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647224/

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