C#反射遍歷/查詢類中的屬性以及值
CSDN廣告是越來越多了,所有部落格筆記不再更新,新網址 DotNet筆記
遍歷一個類/或類物件的屬性/值,很有用,看個例子
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication13 { class Program { static void Main(string[] args) { //新建一個物件 Object o = new {name="zhifeiya",@class="myclass" }; //如果有name這個屬性 if(JudgeHasProperty("name",o)) { //輸出name的值 Console.WriteLine(GetPropertyValueByName("name",o).ToString()); } //遍歷該ae物件的name/value (這是一個系統類,這裡拿來測試一下) ApplicationException ae = new ApplicationException(); ForeachPropertyValues(ae); Console.Read(); } /// <summary> /// 判斷 物件 中是否有該屬性(不區分大小寫) /// </summary> /// <param name="PropertyName">屬性名稱</param> /// <param name="o">目標物件</param> /// <returns></returns> public static bool JudgeHasProperty(string PropertyName,Object o) { if (o == null) { o = new { }; } PropertyInfo[] p1 = o.GetType().GetProperties(); bool b = false; foreach (PropertyInfo pi in p1) { if (pi.Name.ToLower() == PropertyName.ToLower()) { b = true; } } return b; } /// <summary> /// 獲取指定屬性的值(不區分大小寫) /// </summary> /// <param name="PropertyName">屬性名稱</param> /// <param name="o">目標物件</param> /// <returns></returns> public static Object GetPropertyValueByName(string PropertyName, Object o) { if (o == null) { o = new { }; } //建立一個返回物件 Object returnObject=new Object(); PropertyInfo[] p1 = o.GetType().GetProperties(); foreach (PropertyInfo pi in p1) { if (pi.Name.ToLower() == PropertyName.ToLower()) { returnObject = pi.GetValue(o); } } return returnObject; } /// <summary> /// 遍歷屬性的名稱/值(顯示形式:name=value) /// </summary> /// <param name="o"></param> public static void ForeachPropertyValues( Object o) { if (o == null) { o = new { }; } PropertyInfo[] p1 = o.GetType().GetProperties(); foreach (PropertyInfo pi in p1) { Console.WriteLine(pi.Name + ":" + pi.GetValue(o,null)); } } } }
執行結果:
場景案例:比如想對HtmlHelper寫一個擴充套件的生成Button標籤的方法:
使用的時候,在檢視中,我們就可以這樣直接呼叫了:public static MvcHtmlString MyButton(this HtmlHelper h, Object HtmlAttribute) { if (HtmlAttribute == null) { HtmlAttribute = new { }; } string str = ""; PropertyInfo[] p1 = HtmlAttribute.GetType().GetProperties(); foreach (PropertyInfo pi in p1) { str += " " + pi.Name + "='" + pi.GetValue(HtmlAttribute, null).ToString() + "' "; } return new MvcHtmlString( "<input type='button' " + str + " >"); }
@Html.MyButton(new { id="but",name="butname",@class="myclass",value="submit"})
生成的html程式碼:
<input type='button' id='but' name='butname' class='myclass' value='submit' >
相關推薦
C#反射遍歷/查詢類中的屬性以及值
CSDN廣告是越來越多了,所有部落格筆記不再更新,新網址 DotNet筆記 遍歷一個類/或類物件的屬性/值,很有用,看個例子 using System; using System.Collections.Generic; using System.Linq; u
c標籤遍歷取map中list集合中的物件屬性值
今天寫批量列印功能時,後臺傳到前端的資料是map集合,以前沒用過,取值時出現了問題,在這裡記錄一下,備忘和複習時看: 1.前端主要部分如下: <body> <c:forEach var="fee" items="${map[\"EtImportFees\
java中迴圈遍歷實體類的屬性和資料型別以及屬性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;
java遍歷實體類的屬性和數據類型以及屬性值
取值 .get 數組 所有 system blog ++ 實體bean lds 遍歷實體類的樹形和數據類型一級屬性值 /** * 遍歷實體類的屬性和數據類型以及屬性值 * @param model * @throws NoSuchMe
用C#如何遍歷一個窗體中的某一種控制元件
如果我要遍歷所有的Label控制元件.我們知道一個窗體中的所有控制元件都是Form.Controls中的成員,想要得到窗體中的所以成員,可以用foreach來遍歷Controls屬性中的物件。注意,Controls屬性中包含的物件都是以Control基類形式存在
指令碼工具之——在指定目錄及其所有子目錄下遍歷查詢檔案中的指定關鍵詞
1、指令碼如下[[email protected] ~]# cat findKeyInDir.sh #!/usr/bin/env bash if [ $# -ne 2 ]; then echo "Usage: sh findKeyInDir <dir&g
查詢MDB中高程點的高程值有0值的圖幅(用遊標遍歷查詢某個欄位的值),並將查到的結果寫入到TXT中
1、 mdbs = arcpy.ListWorkspaces("*","Access") 2、 FeatureClasses = arcpy.ListFeatureClasses() 3、 Fields = arcpy.ListFields(FeatureClass) 4、 cursor =
C#反射呼叫另外一個類中的私有欄位和方法
/// <summary> /// 設計器支援所需的方法 - 不要 /// 使用程式碼編輯器修改此方法的內容。 /// </summary> private void InitializeComponent()
java遍歷實體類的屬性和資料型別以及屬性值
和同學接了個外包的活,由於專案中很多地方要用到poi匯出excel,而每次匯出都要寫很多相同的程式碼,因為poi的cell.setCellValue();每次設定的都是不同實體bean的屬性值,導致程式碼裡很多重複的值,我在想有沒有可以自動裝載bean的屬性及屬性值的方法。
unity中利用反射遍歷類或者結構體中的每一個欄位屬性 、型別 、值
C#利用反射遍歷類或者結構體中的每一個欄位的屬性 型別 值 using System.Collections; using System.Collections.Generic; using U
C#入門7.11——ArrayList類中元素的遍歷與查詢
遍歷: foreach語句,object型別 object:ArrayList中儲存的型別不一定一支,也不一定能夠完全轉換,所以為了避免出錯,我們採用object型別。 using System; u
Type反射遍歷類的屬性
for except ons apps work void esp onf version <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup>
c forEach 遍歷集合中的元素屬性詳解,判斷是否是最後一個元素,
分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
java中遍歷實體類屬性和型別,屬性值
[java] view plain copy print? publicstaticvoid testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentExcept
java中遍歷實體類屬性和型別,並賦值和獲取值
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Dat
[c#.net]遍歷一個對象中所有的屬性和值
through 圖片 ict init 空類 alt style for inf 利用反射 SpDictItem sp = GetCFHObject.GetSpItem("655"); PropertyInfo[] propertys = sp.GetType().
Java中如何利用File類遞歸的遍歷指定目錄中的所有文件和文件夾
generated class pan 目錄 遍歷 tabs () tab java package cuiyuee; import java.io.File; import java.util.ArrayList; import java.util.List; pu
遍歷實體類屬性
main int lds true () cep declared person generate public static void main(String[] args) throws IllegalArgumentException, IllegalAccessEx
Java中遍歷實體類(處理MongoDB)
boot common ech set declare code mod exc reflect 在實際過程中,經常要將實體類進行封裝,尤其是處理數據庫的過程中;因此,對於遍歷實體類能夠與數據庫中的一行數據對應起來。 我是使用的環境是Spring boot,訪問的數據庫時M
pb中遍歷查詢資料庫資料問題(資料庫為 sql server)
指標可以實現但是不推薦 例如:(部分程式碼) for ll_a = 1 to ll_count ll_b = ll_i + ll_a //插入行行號先下移一位 dw_main.insertrow(l