在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. javascript学习笔记_1

    1.JSON的遍历 for(var i in json){  alert(json[i]; }2.arguments 可以理解为是一个数组,并且建有json的部分能力 css(obj,attr,val ...

  2. Java中Json字符串转换为对象的方法(多层List集合)

    借鉴自:http://www.jb51.net/article/91142.htm 在将json字符串转换成对象flightInfo时,当flightInfo对象中有List<flightCla ...

  3. 1.2 SQL运算与控制程序执行流程

    列出需要注意和学习的运算 1.取余 2.begin....end:中间包含两条或两条以上的SQL语句 3.case:进行多重选择,免于写if   then的嵌套循环.  通配符:(实现模糊查询) %: ...

  4. 算数运算符& 关系运算符

    java中的算数运算符 + - * / % ++ -- + +: 加法运算符 - : 减法运算符 *: 乘法运算符 / : 除法运算符 注意: 除数不能为0,除数为0会报出异常 整数运算默认得到整数, ...

  5. Vue语法学习第四课(2)——class与style的绑定

    之前学到的指令 v-bind 在用于绑定class和style时,表达式结果可以是字符串.数组.对象. 一.绑定HTMLClass ① 对象语法 <div class="static& ...

  6. db.properties是干什么用的

    连接池配置文件db.properties是java中采用数据库连接池技术完成应用对数据库的操作的配置文件信息的文件.具体配置项目如下:drivers=com.microsoft.sqlserver.j ...

  7. 集合List的排序

    自从出现了泛型和LINQ,对于集合的排序变得更简单了. //倒序 list.OrderByDescending(p=> p.a).ThenByDescending(p => p.b); / ...

  8. 超低质量的超低起点PYQT ------前言

    由于年后要赶一个小工程,以前一直用VB6+sqL2K的做些小玩具一样的桌面项目,低级的不能再低级了,某日幡然醒悟,决定努力跟进潮流的尾巴..匆匆撸了一遍网上的PYTHON基础知识,面向对象,装饰器.. ...

  9. 多渠道打包如何运行/debug指定的渠道

    如果配置了多渠道,像这里有3个,分别为flavor1,flavor2,flavor3 productFlavors { flavor1{ packageName "com.xxx.yymad ...

  10. 初涉FlaskWeb开发----基础篇

    1.web程序运行的基本流程 {客户端发送请求 <-----> 服务器返回响应} 2.使用框架可以降低开发难度,提高开发效率. 3.Flask框架的基本认识: 特点:用Python语言实现 ...