欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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#構建分頁應用的方法分析

    C#構建分頁應用的方法分析

    這篇文章主要介紹了C#構建分頁應用的方法,結合實例形式分析了C#創(chuàng)建分頁功能的具體步驟與相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-01-01
  • c#多線程程序設計實例方法

    c#多線程程序設計實例方法

    在本篇文章里小編給大家分享了關于c#多線程程序設計實例步驟,需要的朋友們學習參考下。
    2019-02-02
  • C#8.0 中開啟默認接口實現(xiàn)方法

    C#8.0 中開啟默認接口實現(xiàn)方法

    這篇文章主要介紹了C#8.0 中開啟默認接口實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧的相關資料
    2019-05-05
  • C#裝飾者模式實例分析

    C#裝飾者模式實例分析

    這篇文章主要介紹了C#裝飾者模式,是C#中比較常見的設計模式,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C#中構造函數(shù)和析構函數(shù)用法實例詳解

    C#中構造函數(shù)和析構函數(shù)用法實例詳解

    這篇文章主要介紹了C#中構造函數(shù)和析構函數(shù)用法,結合實例形式詳細分析了C#中構造函數(shù)與析構函數(shù)的原理、定義、使用方法與相關注意事項,需要的朋友可以參考下
    2016-06-06
  • C#中的is和as操作符區(qū)別小結

    C#中的is和as操作符區(qū)別小結

    這篇文章主要介紹了C#中的is和as操作符區(qū)別小結,is是驗證操作對象是不是自己希望的,as是將對象轉換成指定類型,需要的朋友可以參考下
    2015-01-01
  • C#實現(xiàn)動態(tài)數(shù)據(jù)繪圖graphic的方法示例

    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
  • 如何保存Unity中的Log日志

    如何保存Unity中的Log日志

    這篇文章主要介紹了如何保存Unity中的Log日志的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#加載嵌入到資源的非托管dll

    C#加載嵌入到資源的非托管dll

    很多朋友遇到過這樣一個問題需要加載非win32的非托管dll,糾結該怎么操作呢,下面通過代碼給大家介紹下C#加載嵌入到資源的非托管dll的方法,感興趣的朋友一起看看吧
    2021-05-05
  • C#數(shù)組應用分析

    C#數(shù)組應用分析

    C#數(shù)組應用分析...
    2007-08-08

最新評論