2

我只需要显示名称在必填字段列表中的属性。

我正在尝试做这样的事情,但 p.PropertyType.Name == x 不正确:

Pricing pricing = new Pricing();
Type type = typeof(Pricing);
PropertyInfo[] PricingProperties = type.GetProperties();

PricingRequiredFieldDAL requiredField = new PricingRequiredFieldDAL();

var x = requiredField.GetRequiredFields();

var list = PricingProperties.Where(p => p.PropertyType.Name == x);

public class PricingRequiredFieldDAL
{
    PricingContext db = new PricingContext();

    public List<PricingRequiredField> GetRequiredFields()
    {
        return db.PricingRequiredFields.Where(p => p.Required == true).ToList();
    }
}

我将如何以上述方式使用反射获取我想要的信息?

4

2 回答 2

4

就像:

var fieldNames = new HashSet<string>(x.Select(p => p.Name));
var properties = PricingProperties.Where(p => fieldNames.Contains(p.Name));

这是假设PricingRequiredField有一个名为Name. 你实际上并没有告诉我们。

于 2013-04-30T18:17:08.147 回答
1

尝试这个:

var list = PricingProperties.Where(p => x.Contains(p.PropertyType.Name));

我想 x 是一个列表。

于 2013-04-30T18:19:55.647 回答