匿名オブジェクトとobjectの変換

926 ワード

匿名のオブジェクトをセッションやリスト、その他のコンテナに入れる必要がある場合がよくありますが、取り出すとobjectになってしまい、使いにくい場合があります.
変換方法は次のとおりです.
    class Program
    {
        static void Main(string[] args)
        {
            List olist = new List();
            olist.Add(new { Name = "Hauk", Age = 22 });
            olist.Add(new { Name = "Emily", Age = 22 });


            //      
            foreach (dynamic item in olist)
            {
                Console.WriteLine(item.Name);
            }


            //     
            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(object obj, T t)
        {
            return (T)obj;
        }
    }