在new出匿名对象的函数内可以直接调用该匿名对象的属性取值。

可是在其它函数就无法调用匿名对象的属性或方法。

这时,我们可以通过c#的反射机制取值:

文章出处:https://www.cnblogs.com/aucy/p/9102915.html

======================================================

C# 匿名对象的序列化

在开发的时候,经常遇到对象的序列化,尤其是在和外部系统交互的时候。在调用其他接口获得数据的时候大多都是json字符串,而我们相对其进行处理,正常思路是建一个与之对应的强类型的model。但是,有时候我们不想新建一个 麻烦 想利用现有的强类型去进行处理,这时候我们想到了用object 一个伪的匿名对象。然后利用反射取出字段值给现有类型的字段赋值 但是我在利用o反射取object的值的时候得到的propertyinfo为null,我就用其他办法解决了,但是有点麻烦。今天逛博客园发现了一个好用的方法 虽然不理解其中原理,但是经测试可用
            List<object> obj = new List<object>();
            obj.Add(new { aa = 1, bb = 1 });
            obj.Add(new { aa = 1, bb = 2 });
           
            var objs = obj.Select(p => p.Cast(new { aa = 0, bb = 0 })).ToList();
 static class Extensions
    {
        public static T Cast<T>(this object obj, T sample)
        {
            return (T)obj;
        }
    }
 学习下 可以直接取出objs里面的值 有那位牛人解释下其中原理

原文:https://blog.csdn.net/s15981924260/article/details/80623035

=======================================================================

另外在给个dynamic的参考,参考:

C# 匿名对象(匿名类型)、var、动态类型 dynamic

c# 匿名对象增加动态属性

C# - 匿名对象属性的赋值与取值的更多相关文章

  1. javascript对象属性的赋值解析

    代码如下: function Animal(){} function Dog (age){ this.name = 'fuck you' ; this.age = age } var dog = ne ...

  2. js实现hashtable的赋值、取值、遍历

    哈希表(Hashtable)这个概率应该是#c里面的概念,用来赋值.取值.遍历.排序操作提高效率.想起这个东西其实使我们以前经常遇到这样的面试题,一个很大的数组可能有100000个,如何快速知道它里面 ...

  3. Jquery实现数据双向绑定(赋值和取值),类似AngularJS

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  4. 实用ExtJS教程100例-011:ExtJS Form 使用JSON数据赋值和取值

    上一节中我们演示了ExtJS Form的异步加载和提交数据,本节中我们将演示如何使用JSON数据为ExtJS Form中的字段赋值和取值. 系列ExtJS教程持续更新中,点击查看>>最新E ...

  5. Java反射 - 简单的给Bean赋值和取值

    由于项目的实际需要,所以利用java反射原理写了一个简单给bean赋值和取值通用的类,在此记录下方便自己日后用到,也为需要的兄弟提供个参考例子. 工具类BeanRefUtil:   package c ...

  6. 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  7. 关于ligerform中select与text的赋值与取值

    如有下ligerform表单: var formData = [ { display: "区域", name: "QYYJ", newline: true, l ...

  8. php的form中元素name属性相同时的取值问题

    php的form中元素name属性相同时的取值问题:修改元素的名称,在名称后面加上 '[]',然后取值时即可得array()数组. 一.以复选框为例: <html> <head> ...

  9. 使用mybatis如果类属性名和数据库中的属性名不一样取值就会为null

    使用mybatis时如果类属性名和数据库中的属性名不一样取值就会为null 这是不能再去改变javabean中的属性,只能改变sql语句.语句如下所示: <select id="sel ...

随机推荐

  1. 重新复习~ 为了重新找工作 - > XMLHttpRequest2.0 Jsonp nodeType 节点 webpack基本搭建 闭包的一句话总结

    XMLHttpRequest2.0 1.可以设置超时 (xhr.timeout = 1000; ontimeout()函数) 2.支持FormData对象管理表单数据(new FormData 方法: ...

  2. nginx自定义header支持

    今天配置nginx的时候遇到一个问题,直接访问接口没有问题,但是通过nginx转发之后,总是报token失效,无法获取token值,发现请求头丢失了. 默认是不支持非nginx标准的用户自定义head ...

  3. 远程桌面服务当前正忙,因此无法完成您尝试执行的任务-win2008R2

    远程桌面服务当前正忙,因此无法完成您尝试执行的任务,近来我服务器出现这情况, 到达主机房看主机...不可以登陆,也没有登陆框.只能关机. 在微软找到的原因是:Csrss.exe 进程和某些应用程序 ( ...

  4. 制作一个老旧C118的GSM便携式测试设备

    对于OsmocomBB也是被国内外大神玩得不亦乐乎.什么重定向攻击,中间人攻击.都是N年前的东西咯.当然鄙人不会这些.对于地下市场无非就是获取对方短信小则“老.虎.机”,大则支付宝.某日翻了翻“咸”鱼 ...

  5. Java学习笔记(5)

    齿状二维数组的声明及使用 或者 int[][] triangleArray = new int[5][]; triangleArray[0] = new int[5]; triangleArray[1 ...

  6. Python面面面

    1:Python有哪些特点和优点? 作为一门编程入门语言,Python主要有以下特点和优点: 可解释 具有动态特性 面向对象 简明简单 开源 具有强大的社区支持 当然,实际上Python的优点远不止如 ...

  7. python实现三级菜单间的前后跳转

    #录入菜单def createMenu():    Menu = {}    provinces = ["陕西","四川","江苏"] sh ...

  8. 2018—自学Selenium+Python 笔记(一)

    在开始学习前,先唠几句: 身为一个开发人员,为何想要转测试..很多人不解. 但我觉得这并没有什么不可,测试人员是质量的把控者: 要出一个让客户满意的产品,单纯靠开发自测,是不够的..相信其中缘由大家都 ...

  9. 我与java的故事

    前奏 2012年开始接触java,当时还是大二因为博客园的原因我选择了java这门语言进行深入的学习.一开始看的是<动力节点>的教学视频,请原谅我已经忘记那个讲师叫什么名字.但是的项目叫E ...

  10. 非对称加密, 助记词, PIN, WIF

    一钱包 1.1非对称加密, 助记词, PIN, WIF, 地址 1.1.1 非对称加密算法 非对称加密算法, 加密与解密使用不同的KEY, 我们分别称为私钥与公钥,其中可以通过私钥生成公钥 在比特币中 ...