主要是实现将类里面 的属性和对应的值转换为字典的键和值。

public class RDfsedfw
{
/// <summary>
/// 将匿名类转换为字典
/// </summary>
/// <returns></returns>
public Dictionary<string,object> ClassToDic()
{
var data = new
{
action = "GetProperties",
ip ="192.168.1.150",
encryp = ,
date = DateTime.Now,
model = "cash",
sn = "",
vs=""
};
var d = data.GetType().GetProperties()//这一步获取匿名类的公共属性,返回一个数组
.OrderBy(q => q.Name)//这一步排序,需要引入System.Linq,当然可以省略
.Where(q => q.Name!="vs")//这一步筛选,也可以省略
.ToDictionary(q => q.Name, q => q.GetValue(data));//这一步将数组转换为字典
return d;
}
public Dictionary<string,object> ClassToDic1()
{
DataModel dm1 = new DataModel()
{
Str = "abc123",
Date = DateTime.Now,
Chensf = ,
Dic = new Dictionary<string, string>() { { "ID", "" }, { "name", "mike" } },
Gname = "fffffs"//这个字段由于不是属性,是不能被GetProperties转换为数组元素的
};
var d = dm1.GetType().GetProperties()
.ToDictionary(q=>q.Name,q=>q.GetValue(dm1));
return d;
}
}
public class DataModel
{
public string Str { set; get; }
public DateTime Date { set; get; }
public int Chensf { set; get; }
public Dictionary<string ,string> Dic { set; get; } public string Gname;
}

C#将类对象转换为字典的更多相关文章

  1. python-类对象以字典模式操作

    #类对象以字典模式操作 class Person: def __init__(self): self.cache={} def __setitem__(self, key, value): #增加或修 ...

  2. python]用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined[python]用eval函数 字符串转dict

    本博客已搬家至个人网站 在路上 - On the way 下面的 技术 分类. 你可以通过点击 更新帖子 [已解决]Python中,用eval强制将字符串转换为字典变量时候出错:NameError: ...

  3. 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

    我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...

  4. [转载]python中将普通对象作为 字典类(dict) 使用

    目前我知道的有两种方法: 1 定义的类继承dict类 例如 class A(dict): pass a = A() a['name'] = 12 2 给自定义的类添加 __setitem__() __ ...

  5. 将实体类、匿名对象转换为SqlParameter列表

    /// <summary> /// <remarks> /// <para>将实体类/匿名对象转换为SqlParameter列表</para> /// ...

  6. 利用JSON将Map转换为类对象

    Map类型做为一种常见的Java类型,经常在开发过程中使用,笔者最近遇到要将Map对象做为一种通用的参数变量,下传到多个业务类方法中,然后在各个业务类方法中将Map转换为指定类对象的情况.如何将Map ...

  7. RestTemplate将响应数据转换为具有泛型的类对象

    前言: 重要,RestTemplate在SpringBoot项目里即便通过HttpMessageConverters添加了Fastjson且优先级比jackson要高也不会在RestTemplate里 ...

  8. 微信开发,对象转换为xml时候引用XStream这个类报错处理方案

    报错的信息为:The type org.xmlpull.v1.XmlPullParser cannot be resolved. /**  * 扩展XStream 支持CDATA  */ privat ...

  9. 什么是“类数组对象”,在jquer中怎样将类数组对象转换为数组对象

    类数组对象的定义: 所谓"类数组对象"就是一个常规的Object对象,如$("div")但它和数组对象非常相似:具备length属性, 并以0.1.2.3……等 ...

随机推荐

  1. QQ5.0侧滑

    package com.example; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; impo ...

  2. jquery控制Request Payload和Form Data

    Request Payload方式,会发起两次请求 Form Data只发起一次请求 若要把一个ajax请求改为Payload方式,设置contentType即可,发现请求参数不是对象,再把参数转换为 ...

  3. [bzoj3910]火车_并查集_倍增LCA

    火车 bzoj-3910 题目大意:给定一棵n个节点的树,你需要顺次经过m个互不相同的节点,如果一个节点在之前的路径上被经过过,它不必再被特意经过.问走过的路径长度. 注释:$1\le n\le 5\ ...

  4. 使用异步委托执行线程(delegate)

    由于异步委托产生的线程与应用程序主线程是分开执行的,若主线程要获取异步委托线程的结果,则主线程需要等待异步委托的执行结果. BeginInvoke是Delegate类型的一个方法,它的返回类型为IAs ...

  5. Builder设计模式

    Builder模式,又称生成器或构建者模式,属于对象创建型模式,侧重于一步一步的构建复杂对象,只有在构建完成后才会返回生成的对象.Builder模式将一个复杂对象的构建与它的表示分离,使得同样的构建过 ...

  6. Redis集群方案收集

    说明: 如果不考虑客户端分片去实现集群,那么市面上基本可以说就三种方案最成熟,它们分别如下所示: 系统 贡献者 是否官方Redis实现 编程语言 Twemproxy Twitter 是 C Redis ...

  7. CentOS 7防火墙服务FirewallD指南

    CentOS 7防火墙服务FirewallD指南 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 防火墙是一种位于内部网 ...

  8. [Javascript] Flattening nested arrays: a little exercise in functional refactoring

    In this lesson we write an imperative function to flatten nested arrays, and then use the popular ma ...

  9. Pivotal Cloud Foundry安全原理解析

    云计算相关的技术差点儿都对传统网络架构和安全规则产生一定的冲击.Pivotal Cloud Foundry(PCF)也不例外,去年8月为了说服专业安全组织允许PaaS部署方案,特意为他们深入讲了下PC ...

  10. 11gR2 RAC环境重建ASM SPFILE

    有关11gR2 ASM spfile说明能够看 http://blog.csdn.net/robo23/article/details/41930051 下面粘出spfile重新启动过程: +++1) ...