国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現實體類與字符串互相轉換的方法

2019-10-29 21:39:06
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C#實現實體類與字符串互相轉換的方法,涉及C#字符串及對象的相互轉換技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#實現實體類與字符串互相轉換的方法。分享給大家供大家參考。具體實現方法如下:

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Text; 
  4. namespace PackDLL.Data.ConvertData 
  5. /// <summary> 
  6. /// 實體類、字符串互相轉換 
  7. /// </summary> 
  8. public class PackReflectionEntity<T> 
  9. /// <summary> 
  10. /// 將實體類通過反射組裝成字符串 
  11. /// </summary> 
  12. /// <param name="t">實體類</param> 
  13. /// <returns>組裝的字符串</returns> 
  14. public static string GetEntityToString(T t) 
  15. System.Text.StringBuilder sb = new StringBuilder(); 
  16. Type type = t.GetType(); 
  17. System.Reflection.PropertyInfo[] propertyInfos = type.GetProperties(); 
  18. for (int i = 0; i < propertyInfos.Length; i++) 
  19. sb.Append(propertyInfos[i].Name + ":" + propertyInfos[i].GetValue(t, null) + ","); 
  20. return sb.ToString().TrimEnd(new char[] { ',' }); 
  21. /// <summary> 
  22. /// 將反射得到字符串轉換為對象 
  23. /// </summary> 
  24. /// <param name="str">反射得到的字符串</param> 
  25. /// <returns>實體類</returns> 
  26. public static T GetEntityStringToEntity(string str) 
  27. string[] array = str.Split(','); 
  28. string[] temp = null
  29. Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
  30. foreach (string s in array) 
  31. temp = s.Split(':'); 
  32. dictionary.Add(temp[0], temp[1]); 
  33. System.Reflection.Assembly assembly = System.Reflection.Assembly.GetAssembly(typeof(T)); 
  34. T entry = (T)assembly.CreateInstance(typeof(T).FullName); 
  35. System.Text.StringBuilder sb = new StringBuilder(); 
  36. Type type = entry.GetType(); 
  37. System.Reflection.PropertyInfo[] propertyInfos = type.GetProperties(); 
  38. for (int i = 0; i < propertyInfos.Length; i++) 
  39. foreach (string key in dictionary.Keys) 
  40. if (propertyInfos[i].Name == key.ToString()) 
  41. propertyInfos[i].SetValue(entry, GetObject(propertyInfos[i], dictionary[key]), null); 
  42. break
  43. return entry; 
  44. /// <summary> 
  45. /// 轉換值的類型 
  46. /// </summary> 
  47. /// <param name="p"></param> 
  48. /// <param name="value"></param> 
  49. /// <returns></returns> 
  50. static object GetObject(System.Reflection.PropertyInfo p, string value) 
  51. switch (p.PropertyType.Name.ToString().ToLower()) 
  52. case "int16"
  53. return Convert.ToInt16(value); 
  54. case "int32"
  55. return Convert.ToInt32(value); 
  56. case "int64"
  57. return Convert.ToInt64(value); 
  58. case "string"
  59. return Convert.ToString(value); 
  60. case "datetime"
  61. return Convert.ToDateTime(value); 
  62. case "boolean"
  63. return Convert.ToBoolean(value); 
  64. case "char"
  65. return Convert.ToChar(value); 
  66. case "double"
  67. return Convert.ToDouble(value); 
  68. default
  69. return value; 

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夏津县| 怀远县| 西林县| 南雄市| 莎车县| 建宁县| 江北区| 乌兰浩特市| 通道| 交口县| 枣阳市| 且末县| 郁南县| 怀集县| 洞头县| 定西市| 辉县市| 株洲县| 无为县| 山丹县| 肥东县| 闻喜县| 西乌珠穆沁旗| 怀远县| 大余县| 团风县| 独山县| 乐业县| 萍乡市| 红桥区| 日土县| 乡城县| 夹江县| 鱼台县| 麻江县| 万全县| 昌黎县| 金寨县| 永和县| 鲁山县| 苏尼特右旗|