Csharp/C#教程:如何合并两个不同对象的列表?分享


如何合并两个不同对象的列表?

使用C#和LINQ,如何合并两个不同对象的列表,比如研讨会和会议? 它们有一些共同的和一些不同的字段/属性,并且不共享唯一的id。

class Seminar { int id, DateTime joinDate, string name } class Conference { Guid confNumber, DateTime joinDate Type type } 

我有一个列表:

 List List 

我需要将它们合并到一个超级List

 List 

代码片段会很有帮助。

以下代码对我来说很好,如果这是你对Merge的定义

一个解决方案

 List someAs = new List() { new A(), new A() }; List someBs = new List() { new B(), new B { something = new A() } }; List allS = (from x in someAs select (Object)x).ToList(); allS.AddRange((from x in someBs select (Object)x).ToList()); 

其中A和B是一些类,如下所示

 class A { public string someAnotherThing { get; set; } } class B { public A something { get; set; } } 

另一个方案

 List someAs = new List() { new A(), new A() }; List someBs = new List() { new B(), new B { something = string.Empty } }; List allS = (from x in someAs select (Object)new { someAnotherThing = x.someAnotherThing, something = string.Empty }).ToList(); allS.AddRange((from x in someBs select (Object)new { someAnotherThing = string.Empty, something = x.something}).ToList()); 

其中A和B的类定义为

 class A { public string someAnotherThing { get; set; } } class B { public string something { get; set; } } 

如果你只想要一个包含两个列表中所有对象的List ,那就相当简单了:

 List objectList = seminarList.Cast() .Concat(conferenceList) .ToList(); 

如果那不是你想要的,那么你需要通过“合并”来定义你的意思。

上述就是C#学习教程:如何合并两个不同对象的列表?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1026263.html

(0)
上一篇 2022年1月9日
下一篇 2022年1月9日

精彩推荐