首页 新闻 会员 周边

一个关于C#3.5新特性中的匿名类型的问题

1
悬赏园豆:50 [已解决问题] 解决于 2011-06-14 01:38
请看这段代码:
public  List<Object> GetGoodsBySql()  
      {            StringBuilder strSql = new StringBuilder();    
            strSql.Append("SELECT name,cate ");            
        strSql.Append(" FROM Goods,Cate ");      
            strSql.Append(" where Goods.cateid=Cate.id ");   
            List<Object> list = new List<Object>();        
                    using (DataTable table = DbHelperSQL.Query(strSql.ToString()).Tables[0])        
                   {          
                        foreach (DataRow row in table.Rows)
                       {      
                 var  mygoods = new { goodsname = (string)row["name"], catename = (string)row["cate"] }; 
                                 list.Add(mygoods);       
                        }          
                      //再循环读出list中元素的各个属性的值,比如goodsname、catename的值  
                     return list;   
                    }    
               }

           我就是想循环读出list中元素的各个属性的值,比如goodsname、catename的值,但是list已经指定为List<Object>泛型了,也就是说list里面的元素都是Object型了,这个时候怎么取得Object型里面的各个属性的值呢?
Mr.Jack的主页 Mr.Jack | 初学一级 | 园豆:56
提问于:2011-06-12 21:57
< >
分享
最佳答案
0

一般C#3.5的匿名类型的用法不适合用在目前你的场合,因为毕竟你知道你要的对象是什么,并不是什么地方都用匿名类型来写,个人觉得。

收获园豆:20
aXinNo1 | 菜鸟二级 |园豆:370 | 2011-06-13 09:18
其他回答(2)
0

 类似这样:  List<object> list = new List<object>()
            {
                new UserMessage_tbl(){createUserId="1",messageStatus="2"}
            };

            foreach (var item in list)
            {
                UserMessage_tbl u = (UserMessage_tbl)item;
               string status= u.messageStatus;
            }

收获园豆:20
蓦然回首的思念 | 园豆:900 (小虾三级) | 2011-06-13 09:46
0

你能确定你的变量的类型了,可以直接强类型转换就行了。

收获园豆:10
Yo.Chen | 园豆:225 (菜鸟二级) | 2011-06-13 10:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册