猿问

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

请看这段代码:
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型里面的各个属性的值呢?
桃花长相依
浏览 334回答 3
3回答

郎朗坤

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

jeck猫

你能确定你的变量的类型了,可以直接强类型转换就行了。
随时随地看视频慕课网APP
我要回答