日期:2014-05-17  浏览次数:20475 次

List<object>获取值
public static List<object> GData = new List<object>();


GData.Add(new
        {
            Name = "a1",
            NameId = "b1"
        });
GData.Add(new
        {
            Name = "a2",
            NameId = "b2"
        });

请问:假如我要循环获得GData中的Name值该如何获取呢?谢谢各位指教!
List<object> object list 取值

------解决方案--------------------

    class Program
    {
        static void Main(string[] args)
        {
            List<object> olist = new List<object>();
            olist.Add(new { Name = "Hauk", Age = 22 });
            olist.Add(new { Name = "Emily", Age = 22 });

            var obj = ChangeType(olist[0], new { Name = "", Age = 0 });
            Console.WriteLine(obj.Name);

            Console.WriteLine(olist[0].GetType().GetProperty("Name").GetValue(olist[0]).ToString());

        }

        static T ChangeType<T>(object obj, T t)
        {
            return (T)obj;
        }
    }


看你喜欢如何使用。
------解决方案--------------------
用反射,参考http://www.cnblogs.com/Dah/archive/2007/11/22/CSharp_3_AnonymousType_Trick.html