gpt4 book ai didi

c# - 如何获取非集合属性的属性

转载 作者:行者123 更新时间:2023-11-30 20:00:38 27 4
gpt4 key购买 nike

我有一个继承 EntityBasePerson 类:

public class Person : EntityBase
{
virtual public string FirstName { get; set; }
virtual public string LastName { get; set; }
virtual public IList<Asset> Assets { get; set; }

}

public class EntityBase : IEntity
{
public virtual long Id { get; protected set; }
public virtual IEnumurable<string> Errors { get; protected set; }
}

我需要获取不是集合的 Person 类的属性列表

现在 GetProperties() 包含:FirstName, LastName, Assets, Id, Errors 但我只需要不需要数组属性:FirstName, LastName, Id

如何获取不是集合的属性?

最佳答案

您可以按属性的返回类型进行过滤。我怀疑你想过滤掉任何实现 IEnumerable 的东西, 但不是 string (它实现了 IEnumerable<char> ,但你想保留它)。所以像这样:

var properties = type.GetProperties()
.Where(p => p.PropertyType == typeof(string) ||
!typeof(IEnumerable).IsAssignableFrom(p.PropertyType));

关于c# - 如何获取非集合属性的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20581563/

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