通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值

private string T_Account(object[] list)
{
StringBuilder code = new StringBuilder();
//得到数据类型
Type t = list[0].GetType();
List<string> str = new List<string>();
//得到类型的所有字段
FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
code.AppendLine("<table class=‘mytable‘><thead><tr>");
foreach (FieldInfo fi in fields)
{
//提取反编译后字段名
Match m = Regex.Match(fi.Name, @"(?<=\<).+(?=\>)");
code.Append("<td>").Append(m.Value).AppendLine("</td>");
str.Add(m.Value);
}
code.AppendLine("</tr>");
for(int i=0;i<list.Length;i++)
{
object ob=Activator.CreateInstance(t);
code.AppendLine("<tr>");
foreach (FieldInfo fi in fields)
{
//提取反编译后字段名
Match m = Regex.Match(fi.Name, @"(?<=\<).+(?=\>)");
//得到类相应字段的值
code.Append("<td>").Append(fi.GetValue(list[0])).AppendLine("</td>");
str.Add(m.Value);
}
code.AppendLine("</tr>");
}
code.AppendLine("</table>");
string s = code.ToString();
return code.ToString();
}

时间: 2024-10-29 13:26:48

通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值的相关文章

Java反射获取实体的所有可见属性值,返回Object数组

获取实体的所有可见属性值 以下代码提供了两种实现,一种是基于List,一种是基于Map; 基于List的实现更节省内存,更高效一些:如果你有其它特殊的需求,可以根据实际参考以下代码进行扩展,或许有需要用到Map的情况呢! 当然,使用BeanUtils.describe或PropertyUtils.describe一两句代码就搞定了,但还需要额外添加包引用:另外效率方面是不是更高呢?我没有做过测试. /** * 获取实体的所有可见属性值 * @param object 实体类的实例 * @retu

利用反射动态操作数组

java语言中,数组对象并不是从某个类实例化出来的,而是JVM动态创建的.对数组对象使用如下操作,可看到数组对应的Class对象.通过RTTI(Run-Time Type Information)可直接检查数组的运行时类型,以及它的签名.下方的 "[L"就是int[]/Integer[] 的运行类型. 1 Integer[] integers = (Integer[]) Array.newInstance(Integer.class,4); 2 System.out.println(i

第4章 类型基础 -- 4.1 所有类型都从System.Object派生

4.1 所有类型都从System.Object派生 “运行时”要求每个类型最终都从System.Object类型派生. 由于所有类型最终都从System.Object派生,所以每个类型的每个对象都保证了一组最基本的方法. System.Object类提供了如下表所示的公共实例方法: 表4-1 System.Object的公共方法 Equals 若两个对象具有相同的值,就返回 true .详情请参考"对象相等性和同一性" GetHashCode 返回对象的值的哈希码.如果某个类型的对象要

Java读取json数组转化成List或Object数组

在之前的开发中经常遇到将List或Array转换成json传递到web前端, 供前端显示,但是今天我遇到了一个需要将json数组传递到后台,并在后 台转换成list的问题.为此我花费了一段较长的时间,为此我写下这篇博客. 首先是在前端用js构造json数组,html代码如下: <TABLE style="width: 900px" id="table"> <pre name="code" class="html&quo

给object数组进行排序(排序条件是每个元素对象的属性个数)

从汤姆大叔的博客里看到了6个基础题目:本篇是第3题 - 给object数组进行排序(排序条件是每个元素对象的属性个数) 解题关键: 1.Array.sort的用法 2.object的属性数量的统计 解点1:Array.sort的用法 Array.sort可以为数组指定一个排序规则,一般用如下格式进行指定,代码如下: var arr = [10,6,0,4]; console.log( arr.sort() ); //按字符排序 0,10,4,6 console.log( arr.sort( fu

NotSupportedException-无法将类型“System.DateTime”强制转换为类型“System.Object”

几张图就可以说明一切 2015-03-29 21:54:09,206 [77] ERROR log - System.NotSupportedException: 无法将类型“System.DateTime”强制转换为类型“System.Object”.LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型. 在 System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.ValidateAndAdjustCastType

假定有20个 有序 数组,每个数组有500个数字,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个,怎么做?

//3.假定有20个  有序   数组,每个数组有500个数字,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个,怎么做? #include<iostream> using namespace std; struct node { int data; int next; }; node obj[20]; void sift(int k,int m,int b[])//调整一个元素在堆的位置 { int i=k,j=2*i+1,temp; while(j<m) {

【ThinkingInJava】5、以Object数组作为参数

/** * 书本:<Thinking In Java> * 功能:以Object数组作为参数 * 文件:VarArgs.java * 时间:2014年10月6日20:04:18 * 作者:cutter_point */ package Lesson5InitializationAndCleanUp; class A{} public class VarArgs { static void printArray(Object [] args) { for(Object obj : args) /

再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式

今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为String类型的集合转化为逗号间隔字符串形式: 測试类: package com.ghj.packageofclient; import java.util.ArrayList; import java.util.List; import com.ghj.packageoftool.StringUtils; p