请看这段代码:
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型里面的各个属性的值呢?
一般C#3.5的匿名类型的用法不适合用在目前你的场合,因为毕竟你知道你要的对象是什么,并不是什么地方都用匿名类型来写,个人觉得。
类似这样: 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;
}
你能确定你的变量的类型了,可以直接强类型转换就行了。