有没有办法连接C#匿名类型?

Mat*_* T. 13 c# types anonymous

例如

var hello = new { Hello = "Hello" };
var world = new { World = "World" };
var helloWorld = hello + world;
Console.WriteLine(helloWorld.ToString());
//outputs {Hello = Hello, World = World}
Run Code Online (Sandbox Code Playgroud)

有没有办法让这项工作?

Yau*_*kha 8

不,你好,世界对象是不同类的对象.

合并这些类的唯一方法是使用动态类型生成(Emit).以下是此类连接的示例:http://www.developmentalmadness.com/archive/2008/02/12/extend-anonymous-types-using.aspx

从提到的文章引用:

该过程的工作方式如下:首先使用System.ComponentModel.GetProperties从匿名类型获取PropertyDescriptorCollection.启动Reflection.Emit创建一个新的动态程序集并使用TypeBuilder创建一个新类型,它是所涉及的所有属性的组合.然后缓存新类型以便重用,这样您就不必每次需要时都可以构建新类型.

  • 我敢冒险,如果你需要为这种事情做所有这些,你使用的是匿名类型错误. (5认同)