【问题标题】:How to Individuate an element of a list using reflection?如何使用反射来区分列表的元素?
【发布时间】:2015-04-23 02:17:59
【问题描述】:

我有一个 List<T> 的元素和一个 PropertyInfoT 的属性列表。

如何识别循环中元素的单个属性?

理想情况下:

List<T>[i].PropertyInfo[y].Name

【问题讨论】:

  • 没有。我读了你提到的帖子。我的问题不一样。我有一个元素的通用列表及其属性的数组。没有嵌套类。我只想使用我拥有的信息来枚举列表的所有元素及其属性。
  • 这不是公认的答案吗?您将列表转换为IList,在其上使用foreach(或使用Item 方法),并使用您的propertyinfos 获取每个值?我认为这已经很好了......

标签: c# list generics reflection properties


【解决方案1】:

如果我目前理解了这个问题并且您希望匹配这两个集合,那么您可以使用属性信息的类型(具有属性类型属性)和 typeof(T)。 为了提高效率,我建议创建一个动态方法,该方法将被缓存以备将来使用。

【讨论】:

    【解决方案2】:

    如果要查找属性的类型,则必须使用属性:

    PropertyInfo.PropertyType
    

    【讨论】:

      【解决方案3】:

      我使用类似“使用 C# 中的反射从字符串获取属性值”一文中的解决方案解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2022-12-18
        • 2013-05-24
        • 2014-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-06
        • 2022-12-18
        • 2021-11-22
        相关资源
        最近更新 更多