如何访问foreach列表中的属性

时间:2013-12-27 02:07:25

标签: c# list

我创建的对象里面有一些属性。因此,对于此对象,我将在数据库查询后添加值。

之后,我需要进行分组和总结。所以我会这样做:

var after_grouping = from t in list_item
                    group t by new {t.category_subcategory,t.item} into g
                    select new {
                        no = g.Key,
                        price = g.Sum(a=>a.price),
                        quantity = g.Sum(a=>a.quantity)

                    };

然后我需要将“after_grouping”中的值添加到新对象类。所以我会在变量“after_grouping”

中做foreach
 foreach(PropertyInfo eachRow in after_grouping.GetType().GetProperties())
        { 
            string cat_sub = "";
            string item_name = "";
            decimal price = 0;
            decimal quantity = 0;
            decimal total = 0;  
            //Access the object here

            listAfterCopy.Add(new SelectedItemOnPoCopy(cat_sub, item_name, price, quantity, total));

        }

我的问题是,如何访问该属性是我在变量“after_grouping”中创建的?

如果您有任何更好的建议,请告诉我。

1 个答案:

答案 0 :(得分:2)

你不需要反思来做到这一点。您可以像使用自己的自定义类一样访问匿名类型属性:

foreach(var item in after_grouping)
{ 
    listAfterCopy.Add(
        new SelectedItemOnPoCopy(
            item.no.category_subcategory,
            item.no.item,
            item.price,
            item.quantity
        )
    );
}