java expandoobject_ExpandoObject动态类生成属性转json

using System;

using System.Collections;

using System.Collections.Generic;

using System.Collections.ObjectModel;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Dynamic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Web.Script.Serialization;

using System.Windows.Forms;

using Newtonsoft.Json;

namespace WindowsFormsApplication2

{

public partial class Form1 : Form

{

private List l = new List();

public Form1()

{

InitializeComponent();

}

private void button3_Click(object sender, EventArgs e)

{

List rowname = new List();

List colname = new List();

List> l1 = new List>();

//获得行名称

; i < l.Count; i++)

{

bool IsExist = true;

; j < rowname.Count; j++)

{

if (rowname[j].ToString() == l[i].Name)

{

IsExist = false;

break;

}

}

if (IsExist)

rowname.Add(l[i].Name);

}

// 获得列名称

; i < l.Count; i++)

{

bool IsExist = true;

; j < colname.Count; j++)

{

if (colname[j].ToString() == l[i].Type.ToString())

{

IsExist = false;

break;

}

}

if (IsExist)

colname.Add(l[i].Type.ToString());

}

colname.Insert(,"name");

//数据转换

; i < rowname.Count; i++)

{

dynamic exobj = new ExpandoObject();

var obj = (IDictionary) exobj;

obj.Add("name", rowname[i]);

List t = l.Where(c => c.Name.Equals(rowname[i])).ToList();

; j < t.Count(); j++)

{

obj.Add(t[j].Type.ToString(), t[j].Money);

}

l1.Add(obj);

}

DataTable dt = new DataTable("dt");

//创建列

; i < colname.Count; i++)

{

dt.Columns.Add(colname[i]);

}

//创建行

; i < l1.Count; i++)

{

DataRow r = dt.NewRow();

; j < dt.Columns.Count; j++)

{

r[j] = l1[i][colname[j]];

}

dt.Rows.Add(r);

}

dataGridView2.DataSource = dt;

]);

MessageBox.Show(json1);

}

private void Form1_Load(object sender, EventArgs e)

{

; i < ; i++)

{

Test t = new Test();

t.Type = ;

t.Name = "nametype" + i.ToString();

t.Money = + i;

l.Add(t);

}

; i < ; i++)

{

Test t = new Test();

t.Type = ;

t.Name = "nametype" + i.ToString();

t.Money = + i;

l.Add(t);

}

; i < ; i++)

{

Test t = new Test();

t.Type = ;

t.Name = "nametype" + i.ToString();

t.Money = + i;

l.Add(t);

}

dataGridView1.DataSource = l;

}

public class Test

{

public string Name { get; set; }

public int Type { get; set; }

public decimal Money { get; set; }

}

}

}

Android动态类生成预加载-dexmaker使用

一.dexmaker简单介绍 dexmaker是运行在Android Dalvik VM上,利用Java编写,来动态生成DEX字节码的API.如果读者了解AOP编程的话,应该听说过cglib or A ...

Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解

废话不多说,本文将会层层深入给大家讲解如何动态的生成一个完整的界面. 本文内容: Java代码中动态生成View Java代码中动态设置View的位置,以及其他的属性 LayoutParams详解 一 ...

XML之自动生成类,添加,修改,删除类的属性

1. class ClassHelperDemo { public static void Main() { #region 演示一:动态生成类. //生成一个类t. Type t = ClassHe ...

json&period;net(Json&period;NET - Newtonsoft)利用动态类解析json字符串

将对象转换为字符串很简单,唯一要注意的点就是为了避免循环要在需要的字段上添加jsonignore属性.可以参照这篇博文:http://www.mamicode.com/info-detail-1456 ...

mvc中动态给一个Model类的属性设置验证

原文:mvc中动态给一个Model类的属性设置验证 在mvc中有自带的验证机制,比如如果某个字段的类型是数字或者日期,那么用户在输入汉字或者英文字符时,那么编译器会自动验证并提示用户格式不正确,不过这 ...

EntityFramework4&period;5使用Expression类创建动态查询及动态查询导航属性

创建动态查询 想在项目中实现一个灵活的动态查询类,参考http://www.cnblogs.com/lyj/archive/2008/03/25/1122157.html和http://www.cnb ...

python 反射 动态导入模块 类attr属性

1.反射 hasattr getattr delattr setattr 优点:事先定义好接口,接口只有在被完成后才能真正执行,这实现了即插即用,这其实是一种“后期绑定”,即先定义好接口, 然后是再去 ...

解决SpringDataJpa实体类中属性顺序与数据库中生成字段顺序不一致的问题

一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hib ...

随机推荐

HDU5942 &colon; Just a Math Problem

\[\begin{eqnarray*}ans&=&\sum_{i=1}^ng(i)\\&=&\sum_{i=1}^n\sum_{d|i}\mu^2(d)\\&= ...

直接运行可执行文件linux终端一闪而过

运行elasticsearch的时候进入bin目录,ela 然后tab提示的内容中没有e..s..,很奇怪,然后我直接双击运行es,终端一闪而过,我就手动打开终端, ./elasticsearch 这 ...

RMAN数据库恢复之控制文件和参数文件恢复

一.控制文件的恢复1.查询控制文件的路径 SQL> SELECT * FROM V$CONTROLFILE; STATUS NAME IS_RECOVERY_DEST_FILE BLOCK_SI ...

Jedis异常解决:NOAUTH Authentication required

引言 之前项目能够正常运行,因为默认选择db0,后来新的需求来了,不是默认db0,而是给参数选择db. 修改后代码如下,却报错NOAUTH Authentication required. 解决方法 ...

android学习笔记--Scanner

private static List getxxxx(Context ctx) { try { Scanner sc = new Scanner( ctx.openFil ...

获取DataTable前几条数据

#region 获取DataTable前几条数据 /// /// 获取DataTable前几条数据 /// ///

JRE与JDK简介

如何进行 Java 开发: JRE: JDK:

基于HALCON的模板匹配方法总结

注:很抱歉,忘记从转载链接了,作者莫怪.... 基于HALCON的模板匹配方法总结 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多 ...

vue 需求 data中的数据之间的调用

我遇到过这种情况  就是在我的data中 会有数据调用data中的其他数据 如图  我的alertInfoType需要拿到screeningCondition中type的值 用过vue的都知道 我是不 ...

Spring&period;Net封闭业务类为WebService注意点和问题

最近遇到的一个项目中用到了标题所说的方法,用Spring.Net将业务类封闭成WebService供其它地方调用使用,感觉还是蛮新鲜的,于是在园子中搜了一篇园友写的文章(这里)自己也尝试着搭了一个环境 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值