将属性值添加到字典中的对象

本文关键字:对象 字典 属性 添加 | 更新日期: 2023-09-27 18:30:34

所以我有一个名为PaypalTransaction的对象这里是它的开头,不需要显示所有属性来解释问题。

public class PaypalTransaction
{
    public string first_name { get; set; }
    public string last_name { get; set; }
    public string custom { get; set; }
    public string payer_email { get; set; }
    ....
    ....
}

现在我的问题是,我有一个 foreach 循环,每个键都是一个字符串

PaypalTransaction trans = new PaypalTransaction();
foreach(string key in keys)
{
    // key = "first_name" ,  or "last_name , or "custom"
    // how would I set the value of trans based on each key
    //  so when key = "first_name , I want to set trans.first_name
    // something like trans.PropName[key].Value = 
    // I know that code isn't real , but with reflection i know this is possible
 }

将属性值添加到字典中的对象

您可以从 trans 对象获取属性集合,并在循环之前缓存它。您可以遍历它并设置相应属性的值。以下示例可能会有所帮助:

PaypalTransaction trans = new PaypalTransaction();
            PropertyInfo[] properties = trans.GetType().GetProperties();
            foreach (string key in keys)
            {
                properties.Where(x => x.Name == key).First().SetValue(trans, "SetValueHere");
            }

您可能需要优化上述代码以提高性能和其他可能的异常。