C#實現(xiàn)讀取匿名對象屬性值的方法示例總結
更新時間:2020年03月13日 11:51:07 作者:willingtolove
這篇文章主要介紹了C#實現(xiàn)讀取匿名對象屬性值的方法,結合實例形式總結分析了C#通過反射、轉換等方法讀取匿名對象屬性值的相關操作技巧,需要的朋友可以參考下
本文實例講述了C#實現(xiàn)讀取匿名對象屬性值的方法。分享給大家供大家參考,具體如下:
通過new出匿名對象,可以直接調用該匿名對象的屬性名,獲取屬性值。
var objUser = new {Name="Lilei",Age=18 }; //此時可直接讀取匿名類屬性 Console.WriteLine("Name:" + objUser.Name);// Name:Lilei
但當將匿名對象轉換成object后,就無法直接讀取屬性值了;
static object GetObj() { var obj = new { Name = "Lilei", Age = 18 }; return obj; } static void Main(string[] args) { var obj = GetObj();//此時已無法通過obj.Name的方式獲取屬性值了 }
1、通過反射的方式獲取屬性值
static object GetObj() { var obj = new { Name = "Lilei", Age = 18 }; return obj; } static void Main(string[] args) { var obj = GetObj(); //此時可通過反射的方式獲取屬性值 string objName = obj.GetType().GetProperty("Name").GetValue(obj).ToString(); Console.WriteLine(objName);// Lilei }
2、新建個擴展方法,將object轉成對應的匿名對象
class Program { static void Main(string[] args) { var obj = GetObj(); var user = obj.ObjCast(new { Name = "", Age = 0 }); Console.WriteLine("Name:{0},Age:{1}", user.Name, user.Age);// Name:Lilei,Age:18 var objList = GetObjList(); var userList = objList.Select(p => p.ObjCast(new { Name = "", Age = 0 })).ToList(); userList.ForEach(p => { Console.WriteLine("Name:{0},Age:{1}", p.Name, p.Age); }); // Name:Lilei,Age:18 // Name:HanMeimei,Age:20 } static object GetObj() { var obj = new { Name = "Lilei", Age = 18 }; return obj; } static List<object> GetObjList() { List<object> objList = new List<object>(); objList.Add(new { Name = "Lilei", Age = 18 }); objList.Add(new { Name = "HanMeimei", Age = 20 }); return objList; } } static class Extensions { public static T ObjCast<T>(this object obj, T sample) { return (T)obj; } }
更多關于C#相關內(nèi)容感興趣的讀者可查看本站專題:《C#數(shù)據(jù)結構與算法教程》、《C#遍歷算法與技巧總結》、《C#數(shù)組操作技巧總結》及《C#面向對象程序設計入門教程》
希望本文所述對大家C#程序設計有所幫助。
相關文章
C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法示例
這篇文章主要介紹了C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法,結合實例形式分析了C#根據(jù)動態(tài)數(shù)據(jù)繪制2D數(shù)據(jù)表格的相關操作技巧,需要的朋友可以參考下2017-09-09